Fixed a bunch of "warn_unused_result" compiler warnings.
[rsync/rsync.git] / clientserver.c
index b891d79..5002959 100644 (file)
@@ -603,7 +603,8 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host)
                                        status = -1;
                                if (asprintf(&p, "RSYNC_EXIT_STATUS=%d", status) > 0)
                                        putenv(p);
                                        status = -1;
                                if (asprintf(&p, "RSYNC_EXIT_STATUS=%d", status) > 0)
                                        putenv(p);
-                               system(lp_postxfer_exec(i));
+                               if (system(lp_postxfer_exec(i)) < 0)
+                                       status = -1;
                                _exit(status);
                        }
                }
                                _exit(status);
                        }
                }
@@ -974,20 +975,23 @@ static void create_pid_file(void)
        char *pid_file = lp_pid_file();
        char pidbuf[16];
        pid_t pid = getpid();
        char *pid_file = lp_pid_file();
        char pidbuf[16];
        pid_t pid = getpid();
-       int fd;
+       int fd, len;
 
        if (!pid_file || !*pid_file)
                return;
 
        cleanup_set_pid(pid);
        if ((fd = do_open(pid_file, O_WRONLY|O_CREAT|O_EXCL, 0666 & ~orig_umask)) == -1) {
 
        if (!pid_file || !*pid_file)
                return;
 
        cleanup_set_pid(pid);
        if ((fd = do_open(pid_file, O_WRONLY|O_CREAT|O_EXCL, 0666 & ~orig_umask)) == -1) {
+         failure:
                cleanup_set_pid(0);
                fprintf(stderr, "failed to create pid file %s: %s\n", pid_file, strerror(errno));
                rsyserr(FLOG, errno, "failed to create pid file %s", pid_file);
                exit_cleanup(RERR_FILEIO);
        }
        snprintf(pidbuf, sizeof pidbuf, "%ld\n", (long)pid);
                cleanup_set_pid(0);
                fprintf(stderr, "failed to create pid file %s: %s\n", pid_file, strerror(errno));
                rsyserr(FLOG, errno, "failed to create pid file %s", pid_file);
                exit_cleanup(RERR_FILEIO);
        }
        snprintf(pidbuf, sizeof pidbuf, "%ld\n", (long)pid);
-       write(fd, pidbuf, strlen(pidbuf));
+       len = strlen(pidbuf);
+       if (write(fd, pidbuf, len) != len)
+               goto failure;
        close(fd);
 }
 
        close(fd);
 }