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 <[email protected]>
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 <[email protected]>
Reviewed-by: Ralph Boehme <[email protected]>
Autobuild-User(master): Volker Lendecke <[email protected]>
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