Check for EINVAL from a rename error call in addition to ENOENT because
[rsync/rsync.git] / generator.c
index 06c1fa4..1be4717 100644 (file)
@@ -31,6 +31,7 @@ extern int whole_file;
 extern int block_size;
 extern int csum_length;
 extern int ignore_times;
+extern int size_only;
 extern int io_timeout;
 extern int remote_version;
 extern int always_checksum;
@@ -52,6 +53,10 @@ static int skip_file(char *fname,
                return (memcmp(sum,file->sum,csum_length) == 0);
        }
 
+       if (size_only) {
+               return 1;
+       }
+
        if (ignore_times) {
                return 0;
        }
@@ -273,7 +278,7 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
        if ((statret == -1) && (compare_dest != NULL)) {
                /* try the file at compare_dest instead */
                int saveerrno = errno;
-               slprintf(fnamecmpbuf,MAXPATHLEN-1,"%s/%s",compare_dest,fname);
+               slprintf(fnamecmpbuf,MAXPATHLEN,"%s/%s",compare_dest,fname);
                statret = link_stat(fnamecmpbuf,&st);
                if (!S_ISREG(st.st_mode))
                        statret = -1;