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)
committerKarolin Seeger <kseeger@samba.org>
Wed, 8 May 2013 19:26:14 +0000 (21:26 +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>
(cherry picked from commit a026fc6b699719309a27d4646d06fe1a45b0d158)

source3/smbd/smb2_server.c

index 29d4f7cdc9f305f129067a74f5649c0d9ff5ba20..a0ac2f2bbf392ab657f76d9874ba1b68b724d09f 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);