summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Danneman <steven.danneman@isilon.com>2008-11-23 18:20:19 -0800
committerSteven Danneman <steven.danneman@isilon.com>2008-11-23 18:30:56 -0800
commit798b9e1ad6bbdcf873285d0e1c5008e566744162 (patch)
treecc7ec4f562fa63d5673fa3c926994d9d2bf9cc52
parenta36415a5651c598e1dd28e163995e266dad51130 (diff)
downloadsamba-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.c13
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);