From: Jeremy Allison Date: Mon, 13 Apr 2020 20:46:44 +0000 (-0700) Subject: s3: VFS: catia. Add catia_get_nt_acl_at(). X-Git-Tag: samba-4.13.0rc1~701 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=22c3541e009a744ac4c1bb5f01b34b797b3ddd31;p=samba.git s3: VFS: catia. Add catia_get_nt_acl_at(). Not yet used. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c index 3f01db0ec14..ffdf5629190 100644 --- a/source3/modules/vfs_catia.c +++ b/source3/modules/vfs_catia.c @@ -1055,6 +1055,49 @@ catia_get_nt_acl(struct vfs_handle_struct *handle, return status; } +static NTSTATUS catia_get_nt_acl_at(struct vfs_handle_struct *handle, + struct files_struct *dirfsp, + const struct smb_filename *smb_fname, + uint32_t security_info, + TALLOC_CTX *mem_ctx, + struct security_descriptor **ppdesc) +{ + char *mapped_name = NULL; + const char *path = smb_fname->base_name; + struct smb_filename *mapped_smb_fname = NULL; + NTSTATUS status; + + SMB_ASSERT(dirfsp == handle->conn->cwd_fsp); + + status = catia_string_replace_allocate(handle->conn, + path, &mapped_name, vfs_translate_to_unix); + if (!NT_STATUS_IS_OK(status)) { + errno = map_errno_from_nt_status(status); + return status; + } + mapped_smb_fname = synthetic_smb_fname(talloc_tos(), + mapped_name, + NULL, + &smb_fname->st, + smb_fname->twrp, + smb_fname->flags); + if (mapped_smb_fname == NULL) { + TALLOC_FREE(mapped_name); + return NT_STATUS_NO_MEMORY; + } + + status = SMB_VFS_NEXT_GET_NT_ACL_AT(handle, + dirfsp, + mapped_smb_fname, + security_info, + mem_ctx, + ppdesc); + TALLOC_FREE(mapped_name); + TALLOC_FREE(mapped_smb_fname); + + return status; +} + static SMB_ACL_T catia_sys_acl_get_file(vfs_handle_struct *handle, const struct smb_filename *smb_fname, @@ -2485,6 +2528,7 @@ static struct vfs_fn_pointers vfs_catia_fns = { /* NT ACL operations. */ .get_nt_acl_fn = catia_get_nt_acl, + .get_nt_acl_at_fn = catia_get_nt_acl_at, .fget_nt_acl_fn = catia_fget_nt_acl, .fset_nt_acl_fn = catia_fset_nt_acl,