summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--generator.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/generator.c b/generator.c
index df690da6..e05d889c 100644
--- a/generator.c
+++ b/generator.c
@@ -1349,8 +1349,9 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
dry_missing_dir = file;
file->flags |= FLAG_MISSING_DIR;
}
+ init_stat_x(&real_sx);
+ real_sx.st = sx.st;
real_ret = statret;
- real_sx = sx;
if (file->flags & FLAG_DIR_CREATED)
statret = -1;
if (!preserve_perms) { /* See comment in non-dir code below. */
@@ -1653,8 +1654,9 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
}
+ init_stat_x(&real_sx);
+ real_sx.st = sx.st; /* Don't copy xattr/acl pointers, as they would free wrong. */
real_ret = statret;
- real_sx = sx;
if (partial_dir && (partialptr = partial_dir_fname(fname)) != NULL
&& link_stat(partialptr, &partial_st, 0) == 0