smb3: fix signing verification of large reads
authorSteve French <stfrench@microsoft.com>
Thu, 5 Sep 2019 04:07:52 +0000 (23:07 -0500)
committerSteve French <stfrench@microsoft.com>
Mon, 16 Sep 2019 16:43:38 +0000 (11:43 -0500)
Code cleanup in the 5.1 kernel changed the array
passed into signing verification on large reads leading
to warning messages being logged when copying files to local
systems from remote.

   SMB signature verification returned error = -5

This changeset fixes verification of SMB3 signatures of large
reads.

Suggested-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
fs/cifs/smb2pdu.c

index 4c9c34cdf05f9383cb02d8cd11a8704d05002c71..9a65e517df30c175c92c381b91f009a5b269e934 100644 (file)
@@ -3483,8 +3483,8 @@ smb2_readv_callback(struct mid_q_entry *mid)
        struct smb2_sync_hdr *shdr =
                                (struct smb2_sync_hdr *)rdata->iov[0].iov_base;
        struct cifs_credits credits = { .value = 0, .instance = 0 };
-       struct smb_rqst rqst = { .rq_iov = rdata->iov,
-                                .rq_nvec = 2,
+       struct smb_rqst rqst = { .rq_iov = &rdata->iov[1],
+                                .rq_nvec = 1,
                                 .rq_pages = rdata->pages,
                                 .rq_offset = rdata->page_offset,
                                 .rq_npages = rdata->nr_pages,