X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/41cfde6be388364f9bf7dfa9a532625b1f660df7..8f1b4f3642944d7ca052ae84223e14ea93f8c10b:/main.c diff --git a/main.c b/main.c index 20c93c25..267cbd7f 100644 --- a/main.c +++ b/main.c @@ -481,12 +481,17 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name) if (fd_pair(error_pipe) < 0 || (need_name_pipe && fd_pair(name_pipe) < 0)) { rsyserr(FERROR, errno, "pipe failed in do_recv"); - exit_cleanup(RERR_SOCKETIO); + exit_cleanup(RERR_IPC); } io_flush(NORMAL_FLUSH); - if ((pid = do_fork()) == 0) { + if ((pid = do_fork()) == -1) { + rsyserr(FERROR, errno, "fork failed in do_recv"); + exit_cleanup(RERR_IPC); + } + + if (pid == 0) { close(error_pipe[0]); if (need_name_pipe) { close(name_pipe[1]);