]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: use metadata_fsp() with SMB_VFS_FGET_NT_ACL()
authorRalph Boehme <slow@samba.org>
Fri, 29 Jul 2022 12:49:56 +0000 (14:49 +0200)
committerJule Anger <janger@samba.org>
Tue, 6 Sep 2022 06:32:13 +0000 (06:32 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15126
MR: https://gitlab.com/samba-team/samba/-/merge_requests/2643

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
(backported from commit c949e4b2a42423ac3851e86e489fd0c5d46d7f1f)
[slow@samba.org: context mismatch due to smbd_check_access_rights_fname() call in master]

selftest/knownfail.d/samba3.blackbox.delete_stream [deleted file]
source3/rpc_server/srvsvc/srv_srvsvc_nt.c
source3/smbd/dir.c
source3/smbd/file_access.c
source3/smbd/open.c
source3/smbd/pysmbd.c
source3/torture/cmd_vfs.c

diff --git a/selftest/knownfail.d/samba3.blackbox.delete_stream b/selftest/knownfail.d/samba3.blackbox.delete_stream
deleted file mode 100644 (file)
index 22c996a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-^samba3.blackbox.delete_stream.delete stream\(fileserver\)
index fc27a459634b5f7de82b2a9ff721440fe432e921..2608e92db4bce7479008a86856d972eddc90820a 100644 (file)
@@ -2463,7 +2463,7 @@ WERROR _srvsvc_NetGetFileSecurity(struct pipes_struct *p,
                goto error_exit;
        }
 
-       nt_status = SMB_VFS_FGET_NT_ACL(fsp,
+       nt_status = SMB_VFS_FGET_NT_ACL(metadata_fsp(fsp),
                                       (SECINFO_OWNER
                                        |SECINFO_GROUP
                                        |SECINFO_DACL), sd_buf, &sd_buf->sd);
index 77fb3df6a735dcfeb3adffc43cbf17eda6fd54eb..298b1e49e863d00784bfdf6e0b251e9329fbe955 100644 (file)
@@ -1244,7 +1244,7 @@ static bool user_can_read_fsp(struct files_struct *fsp)
                return false;
         }
 
-       status = SMB_VFS_FGET_NT_ACL(fsp,
+       status = SMB_VFS_FGET_NT_ACL(metadata_fsp(fsp),
                        (SECINFO_OWNER |
                         SECINFO_GROUP |
                         SECINFO_DACL),
index 9193c6503160678a17070f9297260b47f39ec2cc..598848fb4f749662211d89d68aa566cff54d2469 100644 (file)
@@ -158,7 +158,7 @@ bool directory_has_default_acl_fsp(struct files_struct *fsp)
        unsigned int i;
        NTSTATUS status;
 
-       status = SMB_VFS_FGET_NT_ACL(fsp,
+       status = SMB_VFS_FGET_NT_ACL(metadata_fsp(fsp),
                                SECINFO_DACL,
                                talloc_tos(),
                                &secdesc);
index fb333ea73fc7f7cec393040e1b51314b8e9171ad..f9b4a07f517917bea5204cc0737415a838bd074e 100644 (file)
@@ -277,7 +277,7 @@ NTSTATUS smbd_check_access_rights_fsp(struct files_struct *dirfsp,
                return NT_STATUS_OK;
        }
 
-       status = SMB_VFS_FGET_NT_ACL(fsp,
+       status = SMB_VFS_FGET_NT_ACL(metadata_fsp(fsp),
                                     (SECINFO_OWNER |
                                      SECINFO_GROUP |
                                      SECINFO_DACL),
@@ -3207,7 +3207,7 @@ static NTSTATUS smbd_calculate_maximum_allowed_access_fsp(
                return NT_STATUS_OK;
        }
 
-       status = SMB_VFS_FGET_NT_ACL(fsp,
+       status = SMB_VFS_FGET_NT_ACL(metadata_fsp(fsp),
                                     (SECINFO_OWNER |
                                        SECINFO_GROUP |
                                        SECINFO_DACL),
index c5ffea4104f8424fbe82af3992bd98026d9a1e54..2cf081bd1f50e5deefa0fa6b7d82bdc5aca9509c 100644 (file)
@@ -323,7 +323,7 @@ static NTSTATUS get_nt_acl_conn(TALLOC_CTX *mem_ctx,
                return status;
        }
 
-       status = SMB_VFS_FGET_NT_ACL(smb_fname->fsp,
+       status = SMB_VFS_FGET_NT_ACL(metadata_fsp(smb_fname->fsp),
                                security_info_wanted,
                                mem_ctx,
                                sd);
index 43a34d98c5ec1c3d00ac21ae4c7d4870ee2c5fea..6945641184046f6bd43ff6e18dd6c2fe8448f59c 100644 (file)
@@ -1596,7 +1596,7 @@ static NTSTATUS cmd_fget_nt_acl(struct vfs_state *vfs, TALLOC_CTX *mem_ctx,
                return NT_STATUS_OK;
        }
 
-       status = SMB_VFS_FGET_NT_ACL(vfs->files[fd],
+       status = SMB_VFS_FGET_NT_ACL(metadata_fsp(vfs->files[fd]),
                                     SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL,
                                     talloc_tos(), &sd);
        if (!NT_STATUS_IS_OK(status)) {