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)
committerVolker Lendecke <vl@samba.org>
Wed, 10 Aug 2022 15:32:35 +0000 (15: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>
source3/smbd/open.c
source3/smbd/pysmbd.c
source3/torture/cmd_vfs.c

index a091ce8f9ec4c1bc50a7cae11b19f11a0687dc2b..093f9b1725754a099e4d7a8fe07e919b1a7d08b4 100644 (file)
@@ -5251,7 +5251,7 @@ static NTSTATUS inherit_new_acl(files_struct *dirfsp, files_struct *fsp)
                /* 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 6209c6626d2be350ecc65850a5e66fd51844fc61..658de43d2c01771c9336eeda9e210485be950c04 100644 (file)
@@ -281,7 +281,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 8d38a7a9ee7a784a98a39f09c9b9b2d895d72bfc..3be450b97bda7fcd2c14ec970a2c15ecf848e4db 100644 (file)
@@ -1717,7 +1717,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;
@@ -1823,7 +1826,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;