From: Jeremy Allison Date: Wed, 14 Feb 2018 21:23:12 +0000 (-0800) Subject: s3: smbd: Fix possible directory fd leak if the underlying OS doesn't support fdopendir() X-Git-Tag: ldb-1.3.2~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5ad5e7966f555b1d2b39d276646934a2cd2535e6;p=thirdparty%2Fsamba.git s3: smbd: Fix possible directory fd leak if the underlying OS doesn't support fdopendir() 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 --- 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;