From 38f79fdcfd5b4197711dea0ad1709b64da42ddaa Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Thu, 16 Apr 2015 22:28:25 +0200 Subject: [PATCH 1/2] s3:smbd: missing tevent_req_nterror The error code path in case fsp == NULL misses a call tevent_req_nterror(). Signed-off-by: Ralph Boehme --- source3/smbd/aio.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c index e2306a9..253782b 100644 --- a/source3/smbd/aio.c +++ b/source3/smbd/aio.c @@ -789,10 +789,10 @@ static void aio_pread_smb2_done(struct tevent_req *req) (nread == -1) ? strerror(err) : "no error")); if (fsp == NULL) { - DEBUG( 3, ("aio_pread_smb2_done: file closed whilst " - "aio outstanding (mid[%llu]).\n", - (unsigned long long)aio_ex->smbreq->mid)); + DEBUG(3, ("%s: request cancelled (mid[%ju])\n", + __func__, (uintmax_t)aio_ex->smbreq->mid)); TALLOC_FREE(aio_ex); + tevent_req_nterror(subreq, NT_STATUS_INTERNAL_ERROR); return; } @@ -962,10 +962,10 @@ static void aio_pwrite_smb2_done(struct tevent_req *req) (nwritten == -1) ? strerror(err) : "no error")); if (fsp == NULL) { - DEBUG( 3, ("aio_pwrite_smb2_done: file closed whilst " - "aio outstanding (mid[%llu]).\n", - (unsigned long long)aio_ex->smbreq->mid)); + DEBUG(3, ("%s: request cancelled (mid[%ju])\n", + __func__, (uintmax_t)aio_ex->smbreq->mid)); TALLOC_FREE(aio_ex); + tevent_req_nterror(subreq, NT_STATUS_INTERNAL_ERROR); return; } -- 2.1.0 From a6973d4181c9b81d6c87187f72785309ee8226dd Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 17 Apr 2015 09:12:59 +0200 Subject: [PATCH 2/2] s3:smbd: update comment to correctly reflect MS-SMB2 Signed-off-by: Ralph Boehme --- source3/smbd/smb2_server.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 8725ef2..42a809b 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -1347,12 +1347,11 @@ NTSTATUS smbd_smb2_request_pending_queue(struct smbd_smb2_request *req, if (req->in.vector_count > req->current_idx + SMBD_SMB2_NUM_IOV_PER_REQ) { /* - * We're trying to go async in a compound - * request chain. - * This is only allowed for opens that - * cause an oplock break, otherwise it - * is not allowed. See [MS-SMB2].pdf - * note <194> on Section 3.3.5.2.7. + * We're trying to go async in a compound request + * chain. This is only allowed for opens that cause an + * oplock break or for the last operation in the + * chain, otherwise it is not allowed. See + * [MS-SMB2].pdf note <206> on Section 3.3.5.2.7. */ const uint8_t *inhdr = SMBD_SMB2_IN_HDR_PTR(req); -- 2.1.0