diff options
author | Steven Danneman <steven.danneman@isilon.com> | 2008-11-23 18:20:19 -0800 |
---|---|---|
committer | Steven Danneman <steven.danneman@isilon.com> | 2008-11-23 18:30:56 -0800 |
commit | 798b9e1ad6bbdcf873285d0e1c5008e566744162 (patch) | |
tree | cc7ec4f562fa63d5673fa3c926994d9d2bf9cc52 | |
parent | a36415a5651c598e1dd28e163995e266dad51130 (diff) | |
download | samba-798b9e1ad6bbdcf873285d0e1c5008e566744162.tar.gz samba-798b9e1ad6bbdcf873285d0e1c5008e566744162.tar.bz2 samba-798b9e1ad6bbdcf873285d0e1c5008e566744162.zip |
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.
-rw-r--r-- | source3/smbd/nttrans.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 52c16e2ac6..8a18c87903 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); |