diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
-@@ -83,6 +83,9 @@ extern int filesfrom_convert;
+@@ -84,6 +84,9 @@ extern int filesfrom_convert;
extern iconv_t ic_send, ic_recv;
#endif
#define PTR_SIZE (sizeof (struct file_struct *))
int io_error;
-@@ -616,6 +619,24 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
+@@ -619,6 +622,24 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
stats.total_size += F_LENGTH(file);
}
static struct file_struct *recv_file_entry(struct file_list *flist,
int xflags, int f)
{
-@@ -684,6 +705,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
+@@ -687,6 +708,9 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
}
#endif
am_starting_up = 0;
return 1;
-@@ -2053,6 +2082,12 @@ void server_options(char **args, int *argc_p)
+@@ -2061,6 +2090,12 @@ void server_options(char **args, int *argc_p)
else if (remove_source_files)
args[ac++] = "--remove-sent-files";
+ args[ac++] = arg;
+ }
+
- *argc_p = ac;
- return;
-
+ if (ac > MAX_SERVER_ARGS) { /* Not possible... */
+ rprintf(FERROR, "argc overflow in server_options().\n");
+ exit_cleanup(RERR_MALLOC);
diff --git a/rsync.yo b/rsync.yo
--- a/rsync.yo
+++ b/rsync.yo
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
-@@ -2077,6 +2078,22 @@ daemon uses the charset specified in its "charset" configuration parameter
+@@ -2089,6 +2090,22 @@ daemon uses the charset specified in its "charset" configuration parameter
regardless of the remote charset you actually pass. Thus, you may feel free to
specify just the local charset for a daemon transfer (e.g. bf(--iconv=utf8)).