From 32a58107560f178c4976434412e024d7a3640e69 Mon Sep 17 00:00:00 2001 From: Andrew Walker Date: Thu, 4 Feb 2021 21:04:33 -0500 Subject: [PATCH] s3:modules:zfsacl - set SEC_DESC_AUTO_INHERITED as needed When mapping absence of ACE_INHERITED_ACE to SEC_DESC_DACL_PROTECTED control flags, ensure that we also explicitly set SEC_DESC_DACL_AUTO_INHERITED to match Windows behavior. In all other cases, ensure that SEC_DESC_DACL_AUTO_INHERITED is set. Signed-off-by: Andrew Walker --- source3/modules/vfs_zfsacl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source3/modules/vfs_zfsacl.c b/source3/modules/vfs_zfsacl.c index 467a0031119..059c25afc0c 100644 --- a/source3/modules/vfs_zfsacl.c +++ b/source3/modules/vfs_zfsacl.c @@ -62,6 +62,7 @@ static NTSTATUS zfs_get_nt_acl_common(struct connection_struct *conn, int ret; bool inherited_is_present = false; bool is_dir; + uint16_t control = SEC_DESC_DACL_AUTO_INHERITED|SEC_DESC_SELF_RELATIVE; if (VALID_STAT(smb_fname->st)) { psbuf = &smb_fname->st; @@ -148,11 +149,10 @@ static NTSTATUS zfs_get_nt_acl_common(struct connection_struct *conn, if (!inherited_is_present && config->zfsacl_map_dacl_protected) { DBG_DEBUG("Setting SEC_DESC_DACL_PROTECTED on [%s]\n", smb_fname_str_dbg(smb_fname)); - smbacl4_set_controlflags(pacl, - SEC_DESC_DACL_PROTECTED | - SEC_DESC_SELF_RELATIVE); + control |= SEC_DESC_DACL_PROTECTED; } #endif + smbacl4_set_controlflags(pacl, control); *ppacl = pacl; return NT_STATUS_OK; } -- 2.21.0 (Apple Git-122)