[SCM] Samba Shared Repository - branch v3-3-test updated -
release-3-2-0pre2-4338-g687cb15
Jeremy Allison
jra at samba.org
Thu Nov 6 08:51:38 GMT 2008
The branch, v3-3-test has been updated
via 687cb150e2a2f7b3616625718ac5b8f67086ad77 (commit)
from 2b8a076dae2cea4058298ad6224c1e4bf29ac754 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test
- Log -----------------------------------------------------------------
commit 687cb150e2a2f7b3616625718ac5b8f67086ad77
Author: Jeremy Allison <jra at samba.org>
Date: Thu Nov 6 00:51:22 2008 -0800
Fix crash in module, get more of the NULL acl test right.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source/modules/vfs_acl_xattr.c | 32 ++++++++++++++++++--------------
1 files changed, 18 insertions(+), 14 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/modules/vfs_acl_xattr.c b/source/modules/vfs_acl_xattr.c
index e323f8e..2fa18e5 100644
--- a/source/modules/vfs_acl_xattr.c
+++ b/source/modules/vfs_acl_xattr.c
@@ -366,26 +366,26 @@ static NTSTATUS inherit_new_acl(vfs_handle_struct *handle,
parent_name,
DACL_SECURITY_INFORMATION,
&parent_desc);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(10,("inherit_new_acl: directory %s failed "
- "to get acl %s\n",
- parent_name,
- nt_errstr(status) ));
- return status;
- }
-
- /* Create an inherited descriptor from the parent. */
- status = se_create_child_secdesc(ctx,
+ if (NT_STATUS_IS_OK(status)) {
+ /* Create an inherited descriptor from the parent. */
+ status = se_create_child_secdesc(ctx,
&psd,
&size,
parent_desc,
&handle->conn->server_info->ptok->user_sids[PRIMARY_USER_SID_INDEX],
&handle->conn->server_info->ptok->user_sids[PRIMARY_GROUP_SID_INDEX],
container);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+ } else {
+ DEBUG(10,("inherit_new_acl: directory %s failed "
+ "to get acl %s\n",
+ parent_name,
+ nt_errstr(status) ));
}
- if (psd->dacl == NULL) {
+
+ if (!psd || psd->dacl == NULL) {
SMB_STRUCT_STAT sbuf;
int ret;
@@ -393,7 +393,7 @@ static NTSTATUS inherit_new_acl(vfs_handle_struct *handle,
if (fsp && !fsp->is_directory && fsp->fh->fd != -1) {
ret = SMB_VFS_FSTAT(fsp, &sbuf);
} else {
- ret = SMB_VFS_STAT(fsp->conn,fsp->fsp_name, &sbuf);
+ ret = SMB_VFS_STAT(handle->conn,fname, &sbuf);
}
if (ret == -1) {
return map_nt_error_from_unix(errno);
@@ -528,6 +528,10 @@ static NTSTATUS fset_nt_acl_xattr(vfs_handle_struct *handle, files_struct *fsp,
CONST_DISCARD(struct security_descriptor *,psd));
}
+ if (!psd->owner_sid && !psd->group_sid && !(psd->type & SEC_DESC_DACL_PRESENT)) {
+ return NT_STATUS_OK;
+ }
+
status = SMB_VFS_NEXT_FSET_NT_ACL(handle, fsp, security_info_sent, psd);
if (!NT_STATUS_IS_OK(status)) {
return status;
--
Samba Shared Repository
More information about the samba-cvs
mailing list