]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd/aio: Do not go async for SMB2 compound requests
authorChristof Schmitt <cs@samba.org>
Thu, 21 Sep 2017 19:08:01 +0000 (12:08 -0700)
committerKarolin Seeger <kseeger@samba.org>
Tue, 14 Nov 2017 11:39:14 +0000 (12:39 +0100)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13047

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit a2b081e159403e10295a1bc089b48e816ce698b9)

source3/smbd/aio.c

index ff1be13824634f7978cee68ef20e501394b8e973..37b0f8fb9b00db7e3f5008a4c1efda677e846595 100644 (file)
@@ -707,6 +707,10 @@ NTSTATUS schedule_smb2_aio_read(connection_struct *conn,
                return NT_STATUS_RETRY;
        }
 
+       if (smbd_smb2_is_compound(smbreq->smb2req)) {
+               return NT_STATUS_RETRY;
+       }
+
        /* Create the out buffer. */
        *preadbuf = data_blob_talloc(ctx, NULL, smb_maxcnt);
        if (preadbuf->data == NULL) {
@@ -856,6 +860,10 @@ NTSTATUS schedule_aio_smb2_write(connection_struct *conn,
                return NT_STATUS_RETRY;
        }
 
+       if (smbd_smb2_is_compound(smbreq->smb2req)) {
+               return NT_STATUS_RETRY;
+       }
+
        if (smbreq->unread_bytes) {
                /* Can't do async with recvfile. */
                return NT_STATUS_RETRY;