]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Fix Bug 15897
authorVolker Lendecke <vl@samba.org>
Sun, 7 Sep 2025 19:57:27 +0000 (21:57 +0200)
committerVolker Lendecke <vl@samba.org>
Wed, 10 Sep 2025 09:37:33 +0000 (09:37 +0000)
Don't leak smb_dirname->fsp->fh->fd == -1 coming from
openat_pathref_fsp_lcomp().

Bug: https://bugzilla.samba.org/show_bug.cgi?id=15897
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Wed Sep 10 09:37:33 UTC 2025 on atb-devel-224

source3/smbd/filename.c

index 6a9d5f99d2add1fd51df280273334f9f716a1672..ec2f65553b61df87c55b0ac3af6e376e2fcbdc45 100644 (file)
@@ -767,19 +767,9 @@ filename_convert_dirfsp_nosymlink(TALLOC_CTX *mem_ctx,
        }
 
        if (dirname[0] == '\0') {
-               smb_dirname = synthetic_smb_fname(
-                       mem_ctx,
-                       ".",
-                       NULL,
-                       NULL,
-                       0,
-                       posix ? SMB_FILENAME_POSIX_PATH : 0);
-               if (smb_dirname == NULL) {
-                       return NT_STATUS_NO_MEMORY;
-               }
-               status = openat_pathref_fsp_lcomp(basedir,
-                                                 smb_dirname,
-                                                 UCF_POSIX_PATHNAMES);
+               status = openat_pathref_fsp_dot(
+                       mem_ctx, basedir,
+                       posix ? SMB_FILENAME_POSIX_PATH : 0, &smb_dirname);
        } else {
                status = normalize_filename_case(conn, dirname, ucf_flags);
                if (!NT_STATUS_IS_OK(status)) {