mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
smbd: stat path before calling openat_pathref_fsp() in open_pathref_base_fsp()
Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
91edc50dc0
commit
c31fe2f9e7
@ -392,6 +392,7 @@ static NTSTATUS open_pathref_base_fsp(const struct files_struct *dirfsp,
|
|||||||
{
|
{
|
||||||
struct smb_filename *smb_fname_base = NULL;
|
struct smb_filename *smb_fname_base = NULL;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
|
int ret;
|
||||||
|
|
||||||
smb_fname_base = synthetic_smb_fname(talloc_tos(),
|
smb_fname_base = synthetic_smb_fname(talloc_tos(),
|
||||||
fsp->fsp_name->base_name,
|
fsp->fsp_name->base_name,
|
||||||
@ -403,6 +404,11 @@ static NTSTATUS open_pathref_base_fsp(const struct files_struct *dirfsp,
|
|||||||
return NT_STATUS_NO_MEMORY;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = vfs_stat(fsp->conn, smb_fname_base);
|
||||||
|
if (ret != 0) {
|
||||||
|
return map_nt_error_from_unix(errno);
|
||||||
|
}
|
||||||
|
|
||||||
status = openat_pathref_fsp(dirfsp, smb_fname_base);
|
status = openat_pathref_fsp(dirfsp, smb_fname_base);
|
||||||
if (!NT_STATUS_IS_OK(status)) {
|
if (!NT_STATUS_IS_OK(status)) {
|
||||||
TALLOC_FREE(smb_fname_base);
|
TALLOC_FREE(smb_fname_base);
|
||||||
|
Loading…
Reference in New Issue
Block a user