From 798b9e1ad6bbdcf873285d0e1c5008e566744162 Mon Sep 17 00:00:00 2001 From: Steven Danneman Date: Sun, 23 Nov 2008 18:20:19 -0800 Subject: [PATCH] Fix to allow setting of NULL DACL/SACL This is a modification of Jeremy's 7522ef15aca2429ef57c75d8297dd8121e79c9da commit. If no DACL/SACL is present in the packet, the SEC_INFO field should still be passed down as is to the VFS layer to signal the creation of a NULL DACL/SACL. As seen in metze RAW-ACL test_nttrans_create_null_dacl(), a NULL DACL is set regardless of the SEC_DESC_DACL_PRESENT bit being set. --- source3/smbd/nttrans.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 52c16e2ac6d..8a18c879037 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -721,21 +721,12 @@ static NTSTATUS set_sd(files_struct *fsp, uint8 *data, uint32 sd_len, return status; } - if (psd->owner_sid==0) { + if (psd->owner_sid == NULL) { security_info_sent &= ~OWNER_SECURITY_INFORMATION; } - if (psd->group_sid==0) { + if (psd->group_sid == NULL) { security_info_sent &= ~GROUP_SECURITY_INFORMATION; } - if (psd->sacl==0) { - security_info_sent &= ~SACL_SECURITY_INFORMATION; - } - if (security_info_sent & DACL_SECURITY_INFORMATION) { - psd->type |= SEC_DESC_DACL_PRESENT; - } - if (psd->dacl==0) { - security_info_sent &= ~DACL_SECURITY_INFORMATION; - } /* Convert all the generic bits. */ security_acl_map_generic(psd->dacl, &file_generic_mapping); -- 2.11.4.GIT