From: Ralph Boehme Date: Sun, 28 Oct 2018 18:35:59 +0000 (+0100) Subject: s3:smbd: fix SMB2 aio cancelling X-Git-Tag: tdb-1.3.17~966 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07eb805cde4db6ac74740e3cfbc56ab6f8e2118a;p=thirdparty%2Fsamba.git s3:smbd: fix SMB2 aio cancelling As we currently don't attempt to cancel the internal aio request, we must ignore the SMB2 cancel request and continue to process the SMB2 request, cf MS-SM2 3.3.5.16: If the target request is not successfully canceled, processing of the target request MUST continue and no response is sent to the cancel request. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13667 Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/selftest/knownfail.d/samba3.smb2 b/selftest/knownfail.d/samba3.smb2 deleted file mode 100644 index f4e2ecf3da4..00000000000 --- a/selftest/knownfail.d/samba3.smb2 +++ /dev/null @@ -1 +0,0 @@ -^samba3.smb2.aio_delay.aio_cancel\(nt4_dc\) diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c index c066ea1a978..ffa2a683b46 100644 --- a/source3/smbd/aio.c +++ b/source3/smbd/aio.c @@ -622,12 +622,16 @@ bool cancel_smb2_aio(struct smb_request *smbreq) } /* - * We let the aio request run. Setting fsp to NULL has the - * effect that the _done routines don't send anything out. + * We let the aio request run and don't try to cancel it which means + * processing of the SMB2 request must continue as normal, cf MS-SMB2 + * 3.3.5.16: + * + * If the target request is not successfully canceled, processing of + * the target request MUST continue and no response is sent to the + * cancel request. */ - aio_ex->fsp = NULL; - return true; + return false; } static void aio_pread_smb2_done(struct tevent_req *req);