if (protocol_version < 23) {
if (protocol_version == 22 || !am_sender)
- io_start_multiplex_in();
+ io_start_multiplex_in(f_in);
}
free(modname);
}
if (set_uid) {
- if (setuid(uid)) {
+ if (setuid(uid) || seteuid(uid)) {
rsyserr(FLOG, errno, "setuid %ld failed", (long)uid);
io_printf(f_out, "@ERROR: setuid failed\n");
return -1;
if (protocol_version < 23
&& (protocol_version == 22 || am_sender))
- io_start_multiplex_out();
+ io_start_multiplex_out(f_out);
else if (!ret || err_msg) {
/* We have to get I/O multiplexing started so that we can
* get the error back to the client. This means getting
if (files_from)
write_byte(f_out, 0);
}
- io_start_multiplex_out();
+ io_start_multiplex_out(f_out);
}
if (!ret || err_msg) {