Browse Source

cifs: Make sure all data pages are signed correctly

Check if every data page is signed correctly in sigining helper.

Signed-off-by: Paulo Alcantara <palcantara@suse.de>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Paulo Alcantara 7 years ago
parent
commit
a12d0c590c
1 changed files with 7 additions and 1 deletions
  1. 7 1
      fs/cifs/cifsencrypt.c

+ 7 - 1
fs/cifs/cifsencrypt.c

@@ -83,7 +83,13 @@ int __cifs_calc_signature(struct smb_rqst *rqst,
 
 
 		kaddr = (char *) kmap(rqst->rq_pages[i]) + offset;
 		kaddr = (char *) kmap(rqst->rq_pages[i]) + offset;
 
 
-		crypto_shash_update(shash, kaddr, len);
+		rc = crypto_shash_update(shash, kaddr, len);
+		if (rc) {
+			cifs_dbg(VFS, "%s: Could not update with payload\n",
+				 __func__);
+			kunmap(rqst->rq_pages[i]);
+			return rc;
+		}
 
 
 		kunmap(rqst->rq_pages[i]);
 		kunmap(rqst->rq_pages[i]);
 	}
 	}