From: Volker Lendecke Date: Tue, 1 Feb 2022 16:14:34 +0000 (+0100) Subject: smbd: Move the call to file_free() out of close_directory() X-Git-Tag: tevent-0.12.0~755 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9966b5e233ef2ff0368ba5860c824c7cd6420415;p=thirdparty%2Fsamba.git smbd: Move the call to file_free() out of close_directory() Call file_free() just once Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/smbd/close.c b/source3/smbd/close.c index 8abd3fb3861..cd406f08bee 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -1379,7 +1379,6 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp, if (lck == NULL) { DEBUG(0, ("close_directory: Could not get share mode lock for " "%s\n", fsp_str_dbg(fsp))); - file_free(req, fsp); return NT_STATUS_INVALID_PARAMETER; } @@ -1429,7 +1428,6 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp, if (!NT_STATUS_IS_OK(status)) { DEBUG(5, ("delete_all_streams failed: %s\n", nt_errstr(status))); - file_free(req, fsp); /* unbecome user. */ pop_sec_ctx(); return status; @@ -1472,11 +1470,6 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp, strerror(errno))); } - /* - * Do the code common to files and directories. - */ - file_free(req, fsp); - if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(status1)) { status = status1; } @@ -1562,6 +1555,7 @@ NTSTATUS close_file(struct smb_request *req, files_struct *fsp, status = NT_STATUS_OK; } else if (fsp->fsp_flags.is_directory) { status = close_directory(req, fsp, close_type); + file_free(req, fsp); } else { status = close_normal_file(req, fsp, close_type); }