smbd: use metadata_fsp() with SMB_VFS_FSET_NT_ACL()
authorRalph Boehme <slow@samba.org>
Fri, 29 Jul 2022 12:54:07 +0000 (14:54 +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>
(cherry picked from commit 4ab29e2a345b48ebba652d5154e96adf954a6757)

source3/smbd/open.c
source3/smbd/pysmbd.c
source3/torture/cmd_vfs.c

index f9b4a07f517917bea5204cc0737415a838bd074e..90a2427e96fc48ede6bde913a93f442b01d5d023 100644 (file)
@@ -5228,7 +5228,7 @@ static NTSTATUS inherit_new_acl(struct smb_filename *parent_dir_fname,
                /* We need to be root to force this. */
                become_root();
        }
-       status = SMB_VFS_FSET_NT_ACL(fsp,
+       status = SMB_VFS_FSET_NT_ACL(metadata_fsp(fsp),
                        security_info_sent,
                        psd);
        if (inherit_owner) {
index 2cf081bd1f50e5deefa0fa6b7d82bdc5aca9509c..41135dede81256136d8fcfb1e7365650c5b8b760 100644 (file)
@@ -280,7 +280,7 @@ static NTSTATUS set_nt_acl_conn(const char *fname,
                return status;
        }
 
-       status = SMB_VFS_FSET_NT_ACL(fsp, security_info_sent, sd);
+       status = SMB_VFS_FSET_NT_ACL(metadata_fsp(fsp), security_info_sent, sd);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("set_nt_acl_no_snum: fset_nt_acl returned %s.\n", nt_errstr(status)));
        }
index 6945641184046f6bd43ff6e18dd6c2fe8448f59c..08fe8e18159c87a5c7d562921f9f05a898b0cec2 100644 (file)
@@ -1689,7 +1689,10 @@ static NTSTATUS cmd_fset_nt_acl(struct vfs_state *vfs, TALLOC_CTX *mem_ctx,
                return NT_STATUS_INVALID_PARAMETER;
        }
 
-       status = SMB_VFS_FSET_NT_ACL(vfs->files[fd], SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL, sd);
+       status = SMB_VFS_FSET_NT_ACL(
+                       metadata_fsp(vfs->files[fd]),
+                       SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL,
+                       sd);
        if (!NT_STATUS_IS_OK(status)) {
                printf("fset_nt_acl returned (%s)\n", nt_errstr(status));
                return status;
@@ -1800,7 +1803,10 @@ static NTSTATUS cmd_set_nt_acl(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int a
                goto out;
        }
 
-       status = SMB_VFS_FSET_NT_ACL(fsp, SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL, sd);
+       status = SMB_VFS_FSET_NT_ACL(
+                       metadata_fsp(fsp),
+                       SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL,
+                       sd);
        if (!NT_STATUS_IS_OK(status)) {
                printf("fset_nt_acl returned (%s)\n", nt_errstr(status));
                goto out;