From 6c495e0da4b74a43adb9344f77efbb41908401a1 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 1 Jan 2005 21:08:17 +0000 Subject: [PATCH] - Use an int32 for the each block-size variable. - Fixed a potential overflow in the map_size calculation. --- receiver.c | 20 +++++++++++--------- sender.c | 6 +++--- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/receiver.c b/receiver.c index 70978fd9..f10f25d4 100644 --- a/receiver.c +++ b/receiver.c @@ -209,17 +209,17 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, static char file_sum2[MD4_SUM_LENGTH]; struct map_struct *mapbuf; struct sum_struct sum; - unsigned int len; + int32 len; OFF_T offset = 0; OFF_T offset2; char *data; - int i; + int32 i; char *map = NULL; read_sum_head(f_in, &sum); if (fd_r >= 0 && size_r > 0) { - OFF_T map_size = MAX(sum.blength * 2, 16*1024); + OFF_T map_size = MAX((OFF_T)sum.blength * 2, 16*1024); mapbuf = map_file(fd_r, size_r, map_size, sum.blength); if (verbose > 2) { rprintf(FINFO, "recv mapped %s of size %.0f\n", @@ -243,7 +243,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, stats.literal_data += i; cleanup_got_literal = 1; - sum_update(data,i); + sum_update(data, i); if (fd != -1 && write_file(fd,data,i) != i) goto report_write_error; @@ -252,22 +252,24 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, } i = -(i+1); - offset2 = i*(OFF_T)sum.blength; + offset2 = i * (OFF_T)sum.blength; len = sum.blength; if (i == (int)sum.count-1 && sum.remainder != 0) len = sum.remainder; stats.matched_data += len; - if (verbose > 3) - rprintf(FINFO,"chunk[%d] of size %d at %.0f offset=%.0f\n", - i,len,(double)offset2,(double)offset); + if (verbose > 3) { + rprintf(FINFO, + "chunk[%d] of size %ld at %.0f offset=%.0f\n", + i, (long)len, (double)offset2, (double)offset); + } if (mapbuf) { map = map_ptr(mapbuf,offset2,len); see_token(map, len); - sum_update(map,len); + sum_update(map, len); } if (inplace) { diff --git a/sender.c b/sender.c index a59910e8..80b7096c 100644 --- a/sender.c +++ b/sender.c @@ -72,8 +72,8 @@ static struct sum_struct *receive_sums(int f) s->sums = NULL; if (verbose > 3) { - rprintf(FINFO, "count=%ld n=%u rem=%u\n", - (long)s->count, s->blength, s->remainder); + rprintf(FINFO, "count=%.0f n=%ld rem=%ld\n", + (double)s->count, (long)s->blength, (long)s->remainder); } if (s->count == 0) @@ -214,7 +214,7 @@ void send_files(struct file_list *flist, int f_out, int f_in) } if (st.st_size) { - OFF_T map_size = MAX(s->blength * 3, MAX_MAP_SIZE); + OFF_T map_size = MAX((OFF_T)s->blength * 3, MAX_MAP_SIZE); mbuf = map_file(fd, st.st_size, map_size, s->blength); } else mbuf = NULL; -- 2.34.1