]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: don't leak the fsp if close_file_smb() fails
authorRalph Boehme <slow@samba.org>
Mon, 10 Jul 2023 14:34:23 +0000 (16:34 +0200)
committerJule Anger <janger@samba.org>
Wed, 19 Jul 2023 16:27:39 +0000 (16:27 +0000)
This can happen if DELETE-ON-CLOSE is set, but the deletion fails for some
reason.

The bug was introduced by 1808e5c133474eabc9d3cf91c2a92ec4d92d9fdd.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15417

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Mon Jul 10 21:32:32 UTC 2023 on atb-devel-224

(cherry picked from commit 4da50463e1b75c06d5f8c066e8b4eff48186afb0)

Autobuild-User(v4-17-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-17-test): Wed Jul 19 16:27:39 UTC 2023 on sn-devel-184

source3/smbd/smb2_close.c

index cb494a3a4d95ba1c8346c6dbfce479748e7dd8d6..d4a2676547705d71360bbad6b24eea49f20f2b50 100644 (file)
@@ -225,6 +225,8 @@ static NTSTATUS smbd_smb2_close(struct smbd_smb2_request *req,
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(5,("smbd_smb2_close: close_file[%s]: %s\n",
                         smb_fname_str_dbg(smb_fname), nt_errstr(status)));
+               file_free(smbreq, fsp);
+               *_fsp = fsp = NULL;
                return status;
        }