summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2011-05-25 08:59:47 -0700
committerWayne Davison <wayned@samba.org>2011-05-30 08:39:07 -0700
commit0b519262c60f8decef113b86aed2599253d29ce1 (patch)
treebab84e15e3c193ddcbb553eaea8c7f56c49e31ea
parent3ef38b0d1b5efcd857b9e2f7608f288bd0439785 (diff)
downloadrsync-0b519262c60f8decef113b86aed2599253d29ce1.tar.gz
Expand NO_ENTRY items from fake-super ACLs in get_rsync_acl().
-rw-r--r--acls.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/acls.c b/acls.c
index e6f60884..c72784c1 100644
--- a/acls.c
+++ b/acls.c
@@ -495,9 +495,15 @@ static int get_rsync_acl(const char *fname, rsync_acl *racl,
}
racl->user_obj = IVAL(buf, 0);
+ if (racl->user_obj == NO_ENTRY)
+ racl->user_obj = (mode >> 6) & 7;
racl->group_obj = IVAL(buf, 4);
+ if (racl->group_obj == NO_ENTRY)
+ racl->group_obj = (mode >> 3) & 7;
racl->mask_obj = IVAL(buf, 8);
racl->other_obj = IVAL(buf, 12);
+ if (racl->other_obj == NO_ENTRY)
+ racl->other_obj = mode & 7;
if (cnt) {
char *bp = buf + 4*4;