X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/a2248aea2e785a626b361b880f9db56100378a4a..2873603ab5e7451ad8fd3ee75b859d709ae0378a:/flist.c diff --git a/flist.c b/flist.c index 3c6cb4c2..ad859bc4 100644 --- a/flist.c +++ b/flist.c @@ -37,7 +37,6 @@ extern int numeric_ids; extern int recurse; extern int xfer_dirs; extern int filesfrom_fd; -extern int curr_dir_depth; extern int one_file_system; extern int copy_dirlinks; extern int keep_dirlinks; @@ -91,15 +90,15 @@ static int show_filelist_p(void) static void start_filelist_progress(char *kind) { - rprintf(FINFO, "%s ... ", kind); + rprintf(FCLIENT, "%s ... ", kind); if (verbose > 1 || do_progress) - rprintf(FINFO, "\n"); + rprintf(FCLIENT, "\n"); rflush(FINFO); } static void emit_filelist_progress(int count) { - rprintf(FINFO, " %d files...\r", count); + rprintf(FCLIENT, " %d files...\r", count); } static void maybe_emit_filelist_progress(int count) @@ -283,7 +282,7 @@ void flist_expand(struct file_list *flist) flist->malloced); if (verbose >= 2 && flist->malloced != FLIST_START) { - rprintf(FINFO, "[%s] expand file_list to %.0f bytes, did%s move\n", + rprintf(FCLIENT, "[%s] expand file_list to %.0f bytes, did%s move\n", who_am_i(), (double)sizeof flist->files[0] * flist->malloced, (new_ptr == flist->files) ? " not" : ""); @@ -1059,6 +1058,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) int64 start_write; int use_ff_fd = 0; + rprintf(FLOG, "building file list\n"); if (show_filelist_p()) start_filelist_progress("building file list"); @@ -1069,6 +1069,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) io_start_buffering_out(); if (filesfrom_fd >= 0) { + if (sanitize_paths) + die_on_unsafe_path(argv[0], 0); if (argv[0] && !push_dir(argv[0])) { rsyserr(FERROR, errno, "push_dir %s failed", full_fname(argv[0])); @@ -1122,6 +1124,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) && (len == 1 || fbuf[len-2] == '/'); } + if (sanitize_paths) + die_on_unsafe_path(fbuf, 1); if (link_stat(fbuf, &st, copy_dirlinks) != 0) { io_error |= IOERR_GENERAL; rsyserr(FERROR, errno, "link_stat %s failed", @@ -1325,6 +1329,7 @@ struct file_list *recv_file_list(int f) unsigned short flags; int64 start_read; + rprintf(FLOG, "receiving file list\n"); if (show_filelist_p()) start_filelist_progress("receiving file list");