The branch, v3-5-test has been updated
       via  e0904e2... Ensure check_parent_acl_common() only looks at stored 
blobs - returns NT_STATUS_OK if there aren't any. Jeremy. (cherry picked from 
commit 148e79d156d92b41dfe7d6ae6f8cd2e571a3bee6)
      from  f01a148... Ensure get_nt_acl_internal() only looks at the ACL 
blobs, not reads off the underlying filesystem. Ensure that vfs_acl_tdb.c 
returns NT_STATUS_NOT_FOUND, not NT_STATUS_OBJECT_NAME_NOT_FOUND when it can't 
find a blob matching the file. Jeremy. (cherry picked from commit 
486c8d57ec5a9aa63aff275621ff45c22b8cde61)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit e0904e28f43e4fc3404df85967d088b9b8b8c7d2
Author: Jeremy Allison <[email protected]>
Date:   Wed Dec 2 12:29:16 2009 -0800

    Ensure check_parent_acl_common() only looks at stored
    blobs - returns NT_STATUS_OK if there aren't any.
    Jeremy.
    (cherry picked from commit 148e79d156d92b41dfe7d6ae6f8cd2e571a3bee6)

-----------------------------------------------------------------------

Summary of changes:
 source3/modules/vfs_acl_common.c |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c
index ff97a04..68bf0b0 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,


-- 
Samba Shared Repository

Reply via email to