]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Move directory_has_default_acl() to file_access.c, belongs
authorJeremy Allison <jra@samba.org>
Fri, 2 May 2008 17:09:00 +0000 (10:09 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 2 May 2008 17:09:00 +0000 (10:09 -0700)
there as it no longer uses explicit POSIX ACL calls.
Jeremy.
(This used to be commit ac1eac9b0d07b7b3d341c06ef1a8fd8f3c05a618)

source3/smbd/file_access.c
source3/smbd/posix_acls.c

index 964d1af2588d2a7e0c9883f80cd21afe51558801..4c07bc5a6130d32b576177eeed7f219e0fef10a4 100644 (file)
@@ -183,3 +183,30 @@ bool can_write_to_file(connection_struct *conn, const char *fname, SMB_STRUCT_ST
        return can_access_file(conn, fname, psbuf, FILE_WRITE_DATA);
 }
 
+/****************************************************************************
+ Check for an existing default Windows ACL on a directory.
+****************************************************************************/
+
+bool directory_has_default_acl(connection_struct *conn, const char *fname)
+{
+       /* returns talloced off tos. */
+       struct security_descriptor *secdesc = NULL;
+       unsigned int i;
+       NTSTATUS status = SMB_VFS_GET_NT_ACL(conn, fname,
+                               DACL_SECURITY_INFORMATION, &secdesc);
+
+       if (!NT_STATUS_IS_OK(status) || secdesc == NULL) {
+               return false;
+       }
+
+       for (i = 0; i < secdesc->dacl->num_aces; i++) {
+               struct security_ace *psa = &secdesc->dacl->aces[i];
+               if (psa->flags & (SEC_ACE_FLAG_OBJECT_INHERIT|
+                               SEC_ACE_FLAG_CONTAINER_INHERIT)) {
+                       TALLOC_FREE(secdesc);
+                       return true;
+               }
+       }
+       TALLOC_FREE(secdesc);
+       return false;
+}
index d422746a3c620ade336aa4c5dba3fe778e406842..61ee5b4352eb180becdd30df96590298ccee3f8e 100644 (file)
@@ -4310,28 +4310,3 @@ SEC_DESC *get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
 
        return ret_sd;
 }
-
-/****************************************************************************
- Check for an existing default Windows ACL on a directory.
-****************************************************************************/
-
-bool directory_has_default_acl(connection_struct *conn, const char *fname)
-{
-       SEC_DESC *psd = NULL; /* returns talloced off tos. */
-       unsigned int i;
-       NTSTATUS status = SMB_VFS_GET_NT_ACL(conn, fname,
-                               DACL_SECURITY_INFORMATION, &psd);
-
-       if (!NT_STATUS_IS_OK(status) || psd == NULL) {
-               return false;
-       }
-
-       for (i = 0; i < psd->dacl->num_aces; i++) {
-               SEC_ACE *psa = &psd->dacl->aces[i];
-               if (psa->flags & (SEC_ACE_FLAG_OBJECT_INHERIT|
-                               SEC_ACE_FLAG_CONTAINER_INHERIT)) {
-                       return true;
-               }
-       }
-       return false;
-}