diff options
author | Wayne Davison <wayned@samba.org> | 2009-04-09 22:49:24 -0700 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2009-04-09 22:49:24 -0700 |
commit | 5eb8bd4962a159c52bacb65bee86f20d1075beec (patch) | |
tree | badc8a71ebcfd273c666e3a47ad4d2ec41a690f6 | |
parent | e129500c859646cb4685ad35404be0ff4ba668fd (diff) | |
download | android_external_rsync-5eb8bd4962a159c52bacb65bee86f20d1075beec.tar.gz android_external_rsync-5eb8bd4962a159c52bacb65bee86f20d1075beec.tar.bz2 android_external_rsync-5eb8bd4962a159c52bacb65bee86f20d1075beec.zip |
Don't try to simplify an ACL that has a mask w/o any named values.
-rw-r--r-- | acls.c | 12 |
1 files changed, 3 insertions, 9 deletions
@@ -137,7 +137,8 @@ static void rsync_acl_strip_perms(rsync_acl *racl) else { if (racl->group_obj == racl->mask_obj) racl->group_obj = NO_ENTRY; - racl->mask_obj = NO_ENTRY; + if (racl->names.count != 0) + racl->mask_obj = NO_ENTRY; } racl->other_obj = NO_ENTRY; } @@ -749,14 +750,7 @@ static int recv_rsync_acl(item_list *racl_list, SMB_ACL_TYPE_T type, int f) /* If we received a superfluous mask, throw it away. */ duo_item->racl.mask_obj = NO_ENTRY; #else - if (!duo_item->racl.names.count) { - /* If we received a superfluous mask, throw it away. */ - if (duo_item->racl.mask_obj != NO_ENTRY) { - /* Mask off the group perms with it first. */ - duo_item->racl.group_obj &= duo_item->racl.mask_obj | NO_ENTRY; - duo_item->racl.mask_obj = NO_ENTRY; - } - } else if (duo_item->racl.mask_obj == NO_ENTRY) /* Must be non-empty with lists. */ + if (duo_item->racl.names.count && duo_item->racl.mask_obj == NO_ENTRY) /* Must be non-empty with lists. */ duo_item->racl.mask_obj = (computed_mask_bits | duo_item->racl.group_obj) & ~NO_ENTRY; #endif |