Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
the signed/unsigned change seems to have caused a logic bug on some
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
a574ea6
..
6b6b63a
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-206,7
+206,8
@@
static int get_tmpname(char *fnametmp, char *fname)
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
OFF_T total_size)
{
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
OFF_T total_size)
{
- int i,n,remainder,len,count;
+ int i;
+ unsigned int n,remainder,len,count;
OFF_T offset = 0;
OFF_T offset2;
char *data;
OFF_T offset = 0;
OFF_T offset2;
char *data;
@@
-248,7
+249,7
@@
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
i = -(i+1);
offset2 = i*(OFF_T)n;
len = n;
i = -(i+1);
offset2 = i*(OFF_T)n;
len = n;
- if (i == count-1 && remainder != 0)
+ if (i ==
(int)
count-1 && remainder != 0)
len = remainder;
stats.matched_data += len;
len = remainder;
stats.matched_data += len;
@@
-264,7
+265,7
@@
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
sum_update(map,len);
}
sum_update(map,len);
}
- if (fd != -1 && write_file(fd,map,len) != len) {
+ if (fd != -1 && write_file(fd,map,len) !=
(int)
len) {
rprintf(FERROR,"write failed on %s : %s\n",
fname,strerror(errno));
exit_cleanup(RERR_FILEIO);
rprintf(FERROR,"write failed on %s : %s\n",
fname,strerror(errno));
exit_cleanup(RERR_FILEIO);
@@
-488,7
+489,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
}
if (preserve_hard_links)
}
if (preserve_hard_links)
- do_hard_links(
flist
);
+ do_hard_links();
/* now we need to fix any directory permissions that were
modified during the transfer */
/* now we need to fix any directory permissions that were
modified during the transfer */