]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: avoid a panic in close_directory()
authorRalph Boehme <slow@samba.org>
Mon, 18 Nov 2024 09:50:13 +0000 (10:50 +0100)
committerJule Anger <janger@samba.org>
Wed, 20 Nov 2024 11:17:07 +0000 (11:17 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15754

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Mon Nov 18 12:43:28 UTC 2024 on atb-devel-224

(backported from commit f86d1a35917cdcc07b2fa741c6a369aaad24abaf)
[slow@samba.org: context changes from Directory Leases]

Autobuild-User(v4-20-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-20-test): Wed Nov 20 11:17:07 UTC 2024 on atb-devel-224

source3/smbd/close.c

index bbca474a28a06113ba7f269f9eb5465154a16b2a..cda139ebd1870f09a447b5597c2c0dafb8e43be8 100644 (file)
@@ -1506,7 +1506,8 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
        if (!NT_STATUS_IS_OK(status)) {
                DBG_ERR("share_mode_entry_prepare_lock_del() failed for %s - %s\n",
                        fsp_str_dbg(fsp), nt_errstr(status));
-               return status;
+               log_stack_trace();
+               goto close_fd;
        }
 
        /*
@@ -1595,6 +1596,7 @@ done:
 
        remove_pending_change_notify_requests_by_fid(fsp, notify_status);
 
+close_fd:
        status1 = fd_close(fsp);
 
        if (!NT_STATUS_IS_OK(status1)) {