The branch, master has been updated via 125862c617e vfs: Fix vfs_streams_depot's fstatat from 2dba2a31c27 python:tests/krb5: let create_trust() take {ingress,egress}_claims_tf_rules
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 125862c617efae6926c91acae44206f29e61b148 Author: Volker Lendecke <v...@samba.org> Date: Tue Feb 25 12:09:58 2025 +0100 vfs: Fix vfs_streams_depot's fstatat a24c7d566f2 does not cover subdirectories Bug: https://bugzilla.samba.org/show_bug.cgi?id=15816 Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Autobuild-User(master): Volker Lendecke <v...@samba.org> Autobuild-Date(master): Wed Feb 26 09:00:34 UTC 2025 on atb-devel-224 ----------------------------------------------------------------------- Summary of changes: source3/modules/vfs_streams_depot.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/modules/vfs_streams_depot.c b/source3/modules/vfs_streams_depot.c index 322e04268b8..4da66d6cce4 100644 --- a/source3/modules/vfs_streams_depot.c +++ b/source3/modules/vfs_streams_depot.c @@ -680,6 +680,7 @@ static int streams_depot_fstatat(struct vfs_handle_struct *handle, { struct smb_filename *smb_fname_stream = NULL; struct smb_filename *base_fname = NULL; + struct smb_filename *full_basename = NULL; NTSTATUS status; int ret = -1; @@ -698,6 +699,14 @@ static int streams_depot_fstatat(struct vfs_handle_struct *handle, goto done; } + full_basename = full_path_from_dirfsp_atname(base_fname, + dirfsp, + smb_fname); + if (full_basename == NULL) { + errno = ENOMEM; + goto done; + } + ret = SMB_VFS_NEXT_FSTATAT( handle, dirfsp, base_fname, &base_fname->st, flags); if (ret == -1) { @@ -705,8 +714,11 @@ static int streams_depot_fstatat(struct vfs_handle_struct *handle, } /* lstat the actual stream now. */ - status = stream_smb_fname( - handle, &base_fname->st, smb_fname, &smb_fname_stream, false); + status = stream_smb_fname(handle, + &base_fname->st, + full_basename, + &smb_fname_stream, + false); if (!NT_STATUS_IS_OK(status)) { ret = -1; errno = map_errno_from_nt_status(status); -- Samba Shared Repository