From b055f1ac7b69ede807eead360b7ffb9c65dea53c Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 17 Jul 2019 10:40:51 -0700 Subject: [PATCH] s3: smbd: Prepare for SMB1 directory handle opens in reply_fclose() Call close_file() on any SMB1 directory handle once the dptr is closed. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- source3/smbd/reply.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 4fb35a485dd..bd2f56772e8 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -2083,6 +2083,7 @@ void reply_fclose(struct smb_request *req) bool path_contains_wcard = False; TALLOC_CTX *ctx = talloc_tos(); struct smbd_server_connection *sconn = req->sconn; + files_struct *fsp = NULL; START_PROFILE(SMBfclose); @@ -2126,8 +2127,13 @@ void reply_fclose(struct smb_request *req) memcpy(status,p,21); if(dptr_fetch(sconn, status+12,&dptr_num)) { + fsp = dptr_fsp(sconn, dptr_num); /* Close the dptr - we know it's gone */ dptr_close(sconn, &dptr_num); + if (fsp != NULL) { + close_file(NULL, fsp, NORMAL_CLOSE); + fsp = NULL; + } } reply_outbuf(req, 1, 0); -- 2.47.3