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
fix buglet in handling multiple files
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
647af67
..
1841248
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-395,7
+395,7
@@
void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
write_flush(f_out);
close(fd);
write_flush(f_out);
close(fd);
- unmap_file(buf);
+
if (buf)
unmap_file(buf);
free_sums(s);
}
free_sums(s);
}
@@
-443,6
+443,7
@@
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname)
map = map_ptr(buf,offset2,len);
map = map_ptr(buf,offset2,len);
+ see_token(map, len);
sum_update(map,len);
if (write_sparse(fd,map,len) != len) {
sum_update(map,len);
if (write_sparse(fd,map,len) != len) {
@@
-620,7
+621,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
recv_ok = receive_data(f_in,buf,fd2,fname);
if (fd1 != -1) {
recv_ok = receive_data(f_in,buf,fd2,fname);
if (fd1 != -1) {
- unmap_file(buf);
+
if (buf)
unmap_file(buf);
close(fd1);
}
close(fd2);
close(fd1);
}
close(fd2);
@@
-758,7
+759,7
@@
off_t send_files(struct file_list *flist,int f_out,int f_in)
match_sums(f_out,s,buf,st.st_size);
write_flush(f_out);
match_sums(f_out,s,buf,st.st_size);
write_flush(f_out);
- unmap_file(buf);
+
if (buf)
unmap_file(buf);
close(fd);
free_sums(s);
close(fd);
free_sums(s);