X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/acfcfa70538df76cfa7f95082a9d0231fcf669dd..9f27cd8ca6ccbf1ab4cd8b0b66445535e2573d59:/util.c diff --git a/util.c b/util.c index be639e44..5129c35b 100644 --- a/util.c +++ b/util.c @@ -253,20 +253,20 @@ int copy_file(char *source, char *dest, mode_t mode) ifd = do_open(source, O_RDONLY, 0); if (ifd == -1) { rprintf(FERROR,"open %s: %s\n", - source,strerror(errno)); + full_fname(source), strerror(errno)); return -1; } if (robust_unlink(dest) && errno != ENOENT) { rprintf(FERROR,"unlink %s: %s\n", - dest,strerror(errno)); + full_fname(dest), strerror(errno)); return -1; } ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode); if (ofd == -1) { rprintf(FERROR,"open %s: %s\n", - dest,strerror(errno)); + full_fname(dest), strerror(errno)); close(ifd); return -1; } @@ -274,19 +274,27 @@ int copy_file(char *source, char *dest, mode_t mode) while ((len = safe_read(ifd, buf, sizeof buf)) > 0) { if (full_write(ofd, buf, len) < 0) { rprintf(FERROR,"write %s: %s\n", - dest,strerror(errno)); + full_fname(dest), strerror(errno)); close(ifd); close(ofd); return -1; } } - close(ifd); - close(ofd); + if (close(ifd) < 0) { + rprintf(FINFO, "close failed on %s: %s\n", + full_fname(source), strerror(errno)); + } + + if (close(ofd) < 0) { + rprintf(FERROR, "close failed on %s: %s\n", + full_fname(dest), strerror(errno)); + return -1; + } if (len < 0) { rprintf(FERROR,"read %s: %s\n", - source,strerror(errno)); + full_fname(source), strerror(errno)); return -1; } @@ -476,7 +484,7 @@ static int exclude_server_path(char *arg) if (server_exclude_list.head) { for (s = arg; (s = strchr(s, '/')) != NULL; ) { *s = '\0'; - if (check_exclude(&server_exclude_list, arg, 1)) { + if (check_exclude(&server_exclude_list, arg, 1) < 0) { /* We must leave arg truncated! */ return 1; } @@ -805,7 +813,6 @@ char *alloc_sanitize_path(const char *path, const char *rootdir) rlen--; buf[rlen] = '\0'; } - fprintf(stderr, "p:`%s'\n", buf); return buf; }