From b2524d1333b5090b8b88c55109822373734564ec Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 14 Feb 2018 13:23:12 -0800 Subject: [PATCH] s3: smbd: Fix possible directory fd leak if the underlying OS doesn't support fdopendir() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HPUX has this problem. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13270 Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme Autobuild-User(master): Ralph Böhme Autobuild-Date(master): Fri Feb 23 22:56:35 CET 2018 on sn-devel-144 (cherry picked from commit 5ad5e7966f555b1d2b39d276646934a2cd2535e6) --- source3/smbd/smb2_query_directory.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source3/smbd/smb2_query_directory.c b/source3/smbd/smb2_query_directory.c index 430fdca90de..888473853d4 100644 --- a/source3/smbd/smb2_query_directory.c +++ b/source3/smbd/smb2_query_directory.c @@ -343,11 +343,14 @@ static struct tevent_req *smbd_smb2_query_directory_send(TALLOC_CTX *mem_ctx, if (in_flags & SMB2_CONTINUE_FLAG_REOPEN) { int flags; - dptr_CloseDir(fsp); + status = fd_close(fsp); + if (tevent_req_nterror(req, status)) { + return tevent_req_post(req, ev); + } /* - * dptr_CloseDir() will close and invalidate the fsp's file - * descriptor, we have to reopen it. + * fd_close() will close and invalidate the fsp's file + * descriptor. So we have to reopen it. */ flags = O_RDONLY; -- 2.16.1.291.g4437f3f132-goog