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

Reply via email to