X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/9a0cfff57f6598a2f8ede199ef31be4dc57a8dad..1618c9e6d179fc46285cf556c5bb090ed0e9e503:/io.c diff --git a/io.c b/io.c index b69ae00b..475ac40f 100644 --- a/io.c +++ b/io.c @@ -41,7 +41,6 @@ extern int bwlimit; extern size_t bwlimit_writemax; -extern int verbose; extern int io_timeout; extern int allowed_lull; extern int am_server; @@ -949,6 +948,11 @@ int read_vstring(int f, char *buf, int bufsize) void read_sum_head(int f, struct sum_struct *sum) { sum->count = read_int(f); + if (sum->count < 0) { + rprintf(FERROR, "Invalid checksum count %ld [%s]\n", + (long)sum->count, who_am_i()); + exit_cleanup(RERR_PROTOCOL); + } sum->blength = read_int(f); if (sum->blength < 0 || sum->blength > MAX_BLOCK_SIZE) { rprintf(FERROR, "Invalid block length %ld [%s]\n",