The deny-rsync script from bug 3945.
[rsync/rsync.git] / io.c
diff --git a/io.c b/io.c
index 018dd28..6a91ffd 100644 (file)
--- a/io.c
+++ b/io.c
@@ -352,8 +352,7 @@ static void check_for_d_option_error(const char *msg)
 
        if (saw_d) {
                rprintf(FWARNING,
-                       "*** Try adding \"-r --exclude='/*/*'\" "
-                       "if remote rsync is <= 2.6.3 ***\n");
+                   "*** Try using \"--old-d\" if remote rsync is <= 2.6.3 ***\n");
        }
 }
 
@@ -921,6 +920,8 @@ void read_args(int f_in, char *mod_name, char *buf, size_t bufsiz, int rl_nulls,
        }
        argv[argc] = NULL;
 
+       glob_expand(NULL, NULL, NULL, NULL);
+
        *argc_p = argc;
        *argv_p = argv;
 }
@@ -1353,6 +1354,7 @@ int read_vstring(int f, char *buf, int bufsize)
  * called by both the sender and the receiver. */
 void read_sum_head(int f, struct sum_struct *sum)
 {
+       int32 max_blength = protocol_version < 30 ? OLD_MAX_BLOCK_SIZE : MAX_BLOCK_SIZE;
        sum->count = read_int(f);
        if (sum->count < 0) {
                rprintf(FERROR, "Invalid checksum count %ld [%s]\n",
@@ -1360,7 +1362,7 @@ void read_sum_head(int f, struct sum_struct *sum)
                exit_cleanup(RERR_PROTOCOL);
        }
        sum->blength = read_int(f);
-       if (sum->blength < 0 || sum->blength > MAX_BLOCK_SIZE) {
+       if (sum->blength < 0 || sum->blength > max_blength) {
                rprintf(FERROR, "Invalid block length %ld [%s]\n",
                        (long)sum->blength, who_am_i());
                exit_cleanup(RERR_PROTOCOL);