Ensure we don't try and cancel anything that is in a compound-related request.
authorJeremy Allison <jra@samba.org>
Thu, 2 May 2013 19:34:54 +0000 (12:34 -0700)
committerRichard Sharpe <sharpe@samba.org>
Tue, 7 May 2013 15:58:45 +0000 (17:58 +0200)
Too hard to deal with splitting off the replies.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
source3/smbd/smb2_server.c

index 57e9c7bfa80174a6ffabb4664fb1c7e799d23a7f..9a55d6af2cb499d1d875c7ff3c40d6be7b4ba152 100644 (file)
@@ -1599,6 +1599,14 @@ static NTSTATUS smbd_smb2_request_process_cancel(struct smbd_smb2_request *req)
                uint64_t message_id;
                uint64_t async_id;
 
+               if (cur->compound_related) {
+                       /*
+                        * Never cancel anything in a compound request.
+                        * Way too hard to deal with the result.
+                        */
+                       continue;
+               }
+
                outhdr = SMBD_SMB2_OUT_HDR_PTR(cur);
 
                message_id = BVAL(outhdr, SMB2_HDR_MESSAGE_ID);