From 148e79d156d92b41dfe7d6ae6f8cd2e571a3bee6 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 2 Dec 2009 12:29:16 -0800 Subject: [PATCH] Ensure check_parent_acl_common() only looks at stored blobs - returns NT_STATUS_OK if there aren't any. Jeremy. --- source3/modules/vfs_acl_common.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c index ff97a04c73c..68bf0b05300 100644 --- a/source3/modules/vfs_acl_common.c +++ b/source3/modules/vfs_acl_common.c @@ -493,14 +493,28 @@ static NTSTATUS check_parent_acl_common(vfs_handle_struct *handle, return NT_STATUS_NO_MEMORY; } - status = SMB_VFS_GET_NT_ACL(handle->conn, + status = get_nt_acl_internal(handle, + NULL, parent_name, (OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION), &parent_desc); + + if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { + /* No Windows ACL stored as a blob. Let the + * underlying filesystem take care of checking + * permissions. */ + DEBUG(10,("check_parent_acl_common: no Windows ACL blob " + "stored on directory %s for " + "path %s\n", + parent_name, + path )); + return NT_STATUS_OK; + } + if (!NT_STATUS_IS_OK(status)) { - DEBUG(10,("check_parent_acl_common: SMB_VFS_GET_NT_ACL " + DEBUG(10,("check_parent_acl_common: get_nt_acl_internal " "on directory %s for " "path %s returned %s\n", parent_name, -- 2.11.4.GIT