aboutsummaryrefslogtreecommitdiff
path: root/fs/cifs/smb2pdu.c
diff options
context:
space:
mode:
authorGravatar Pavel Shilovsky <pshilov@microsoft.com> 2016-11-17 15:24:46 -0800
committerGravatar Steve French <smfrench@gmail.com> 2017-02-01 16:46:36 -0600
commit4326ed2f6a16ae9d33e4209b540dc9a371aba840 (patch)
treea4690a2891b1404a967c0c9302ea9008fc90933e /fs/cifs/smb2pdu.c
parentCIFS: Add copy into pages callback for a read operation (diff)
downloadlinux-4326ed2f6a16ae9d33e4209b540dc9a371aba840.tar.gz
linux-4326ed2f6a16ae9d33e4209b540dc9a371aba840.tar.bz2
linux-4326ed2f6a16ae9d33e4209b540dc9a371aba840.zip
CIFS: Decrypt and process small encrypted packets
Allow to decrypt transformed packets, find a corresponding mid and process as usual further. Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
Diffstat (limited to 'fs/cifs/smb2pdu.c')
-rw-r--r--fs/cifs/smb2pdu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 12dee856d4d9..0abeb5fb452f 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2281,7 +2281,7 @@ smb2_readv_callback(struct mid_q_entry *mid)
case MID_RESPONSE_RECEIVED:
credits_received = le16_to_cpu(shdr->CreditRequest);
/* result already set, check signature */
- if (server->sign) {
+ if (server->sign && !mid->decrypted) {
int rc;
rc = smb2_verify_signature(&rqst, server);
@@ -2384,7 +2384,7 @@ smb2_async_readv(struct cifs_readdata *rdata)
kref_get(&rdata->refcount);
rc = cifs_call_async(io_parms.tcon->ses->server, &rqst,
cifs_readv_receive, smb2_readv_callback,
- NULL, rdata, flags);
+ smb3_handle_read_data, rdata, flags);
if (rc) {
kref_put(&rdata->refcount, cifs_readdata_release);
cifs_stats_fail_inc(io_parms.tcon, SMB2_READ_HE);