X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6839140eb5ea3701817c236ad705b451bd2d7b33..ce58b1b479c9ffcdc6fc85d492206fcd5bd32d64:/options.c diff --git a/options.c b/options.c index 915b034e..d719a4d6 100644 --- a/options.c +++ b/options.c @@ -78,7 +78,6 @@ int do_progress=0; int keep_partial=0; int safe_symlinks=0; int copy_unsafe_links=0; -int block_size=0; int size_only=0; int bwlimit=0; int delete_after=0; @@ -88,6 +87,7 @@ int max_delete=0; int ignore_errors=0; int modify_window=0; int blocking_io=-1; +unsigned int block_size = 0; /** Network address family. **/ @@ -124,6 +124,7 @@ int quiet = 0; int always_checksum = 0; int list_only = 0; +#define MAX_BATCH_PREFIX_LEN 256 /* Must be less than MAXPATHLEN-13 */ char *batch_prefix = NULL; static int modify_window_set; @@ -244,7 +245,7 @@ void usage(enum logcode F) rprintf(F," --ignore-existing ignore files that already exist on receiving side\n"); rprintf(F," --delete delete files that don't exist on the sending side\n"); rprintf(F," --delete-excluded also delete excluded files on the receiving side\n"); - rprintf(F," --delete-after delete after transferring, not before\n"); + rprintf(F," --delete-after receiver deletes after transferring, not before\n"); rprintf(F," --ignore-errors delete even if there are IO errors\n"); rprintf(F," --max-delete=NUM don't delete more than NUM files\n"); rprintf(F," --partial keep partially transferred files\n"); @@ -602,6 +603,17 @@ int parse_arguments(int *argc, const char ***argv, int frommain) "write-batch and read-batch can not be used together\n"); exit_cleanup(RERR_SYNTAX); } + if (batch_prefix && strlen(batch_prefix) > MAX_BATCH_PREFIX_LEN) { + rprintf(FERROR, + "the batch-file prefix must be %d characters or less.\n", + MAX_BATCH_PREFIX_LEN); + exit_cleanup(RERR_SYNTAX); + } + + if (tmpdir && strlen(tmpdir) >= MAXPATHLEN - 10) { + rprintf(FERROR, "the --temp-dir path is WAY too long.\n"); + exit_cleanup(RERR_SYNTAX); + } if (do_compression && (write_batch || read_batch)) { rprintf(FERROR, @@ -707,7 +719,7 @@ void server_options(char **args,int *argc) static char mwindow[30]; static char bw[50]; /* Leave room for ``--(write|read)-batch='' */ - static char fext[MAXPATHLEN + 15]; + static char fext[MAX_BATCH_PREFIX_LEN + 15]; int i, x; @@ -790,7 +802,7 @@ void server_options(char **args,int *argc) if (x != 1) args[ac++] = argstr; if (block_size) { - snprintf(bsize,sizeof(bsize),"-B%d",block_size); + snprintf(bsize, sizeof bsize, "-B%u", block_size); args[ac++] = bsize; }