Itemize xattrs of a missing dir from an alt-dest dir.
authorWayne Davison <wayned@samba.org>
Sat, 1 Jan 2011 20:54:07 +0000 (12:54 -0800)
committerWayne Davison <wayned@samba.org>
Sat, 1 Jan 2011 21:03:23 +0000 (13:03 -0800)
Fixes bug 6576.

generator.c

index 635fcb9..c2fbc06 100644 (file)
@@ -1408,6 +1408,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                goto cleanup;
        }
 
+       fnamecmp = fname;
+
        if (is_dir) {
                if (!implied_dirs && file->flags & FLAG_IMPLIED_DIR)
                        goto cleanup;
@@ -1455,11 +1457,13 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                                itemizing = 0;
                                code = FNONE;
                                statret = 1;
-                       } else if (j >= 0)
+                       } else if (j >= 0) {
                                statret = 1;
+                               fnamecmp = fnamecmpbuf;
+                       }
                }
                if (itemizing && f_out != -1) {
-                       itemize(fname, file, ndx, statret, &sx,
+                       itemize(fnamecmp, file, ndx, statret, &sx,
                                statret ? ITEM_LOCAL_CHANGE : 0, 0, NULL);
                }
                if (real_ret != 0 && do_mkdir(fname,file->mode) < 0 && errno != EEXIST) {
@@ -1739,7 +1743,6 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                goto cleanup;
        }
 
-       fnamecmp = fname;
        fnamecmp_type = FNAMECMP_FNAME;
 
        if (statret == 0 && !S_ISREG(sx.st.st_mode)) {