1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-12 20:58:37 +03:00

vfs_zfsacl: use a helper variable in zfs_get_nt_acl_common()

No change in behaviour.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14471

Pair-Programmed-With: Andrew Walker <awalker@ixsystems.com>
Signed-off-by: Ralph Boehme <slow@samba.org>
Signed-off-by: Andrew Walker <awalker@ixsystems.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 13b4f913b06457d8e1f7cf71c85722bbecabd990)
This commit is contained in:
Ralph Boehme 2020-08-20 16:41:36 +02:00 committed by Karolin Seeger
parent 2a6c27d63b
commit c64c277b60

View File

@ -87,6 +87,7 @@ static NTSTATUS zfs_get_nt_acl_common(struct connection_struct *conn,
}
for(i=0; i<naces; i++) {
SMB_ACE4PROP_T aceprop;
uint16_t special = 0;
aceprop.aceType = (uint32_t) acebuf[i].a_type;
aceprop.aceFlags = (uint32_t) acebuf[i].a_flags;
@ -109,6 +110,8 @@ static NTSTATUS zfs_get_nt_acl_common(struct connection_struct *conn,
aceprop.aceMask |= SMB_ACE4_SYNCHRONIZE;
}
special = acebuf[i].a_flags & (ACE_OWNER|ACE_GROUP|ACE_EVERYONE);
if (is_dir && (aceprop.aceMask & SMB_ACE4_ADD_FILE)) {
aceprop.aceMask |= SMB_ACE4_DELETE_CHILD;
}
@ -118,16 +121,20 @@ static NTSTATUS zfs_get_nt_acl_common(struct connection_struct *conn,
inherited_is_present = true;
}
#endif
if(aceprop.aceFlags & ACE_OWNER) {
switch(special) {
case(ACE_OWNER):
aceprop.flags = SMB_ACE4_ID_SPECIAL;
aceprop.who.special_id = SMB_ACE4_WHO_OWNER;
} else if(aceprop.aceFlags & ACE_GROUP) {
break;
case(ACE_GROUP):
aceprop.flags = SMB_ACE4_ID_SPECIAL;
aceprop.who.special_id = SMB_ACE4_WHO_GROUP;
} else if(aceprop.aceFlags & ACE_EVERYONE) {
break;
case(ACE_EVERYONE):
aceprop.flags = SMB_ACE4_ID_SPECIAL;
aceprop.who.special_id = SMB_ACE4_WHO_EVERYONE;
} else {
break;
default:
aceprop.flags = 0;
}
if (smb_add_ace4(pacl, &aceprop) == NULL) {