From 06a7050f9f7573ad796447eadf29396aa99ebcb6 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 1 May 2015 20:02:38 +0200 Subject: [PATCH] s3:smbd: use STATUS_NOTIFY_CLEANUP on smb2 logoff (explicit and implicit) and tdis Bug: https://bugzilla.samba.org/show_bug.cgi?id=11182 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison (cherry picked from commit 5169e9b20c69092d04b596f48ca0e69a46af438f) --- source3/smbd/notify.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c index 0a0ae83e327..0e4969db009 100644 --- a/source3/smbd/notify.c +++ b/source3/smbd/notify.c @@ -378,8 +378,22 @@ static void smbd_notify_cancel_by_map(struct notify_mid_map *map) { struct smb_request *smbreq = map->req->req; struct smbd_server_connection *sconn = smbreq->sconn; + struct smbd_smb2_request *smb2req = smbreq->smb2req; NTSTATUS notify_status = NT_STATUS_CANCELLED; + if (smb2req != NULL) { + if (smb2req->session == NULL) { + notify_status = STATUS_NOTIFY_CLEANUP; + } else if (!NT_STATUS_IS_OK(smb2req->session->status)) { + notify_status = STATUS_NOTIFY_CLEANUP; + } + if (smb2req->tcon == NULL) { + notify_status = STATUS_NOTIFY_CLEANUP; + } else if (!NT_STATUS_IS_OK(smb2req->tcon->status)) { + notify_status = STATUS_NOTIFY_CLEANUP; + } + } + change_notify_reply(smbreq, notify_status, 0, NULL, map->req->reply_fn); change_notify_remove_request(sconn, map->req); -- 2.11.4.GIT