summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/qce/sha.c
diff options
context:
space:
mode:
authorLABBE Corentin <clabbe.montjoie@gmail.com>2015-11-04 21:13:36 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2015-11-17 15:00:36 +0100
commit4fa9948ca5bf308fabd5c9b584bf710f5d393859 (patch)
tree94d2ee7a7b27ab82fe1ad1cd0db09f549846602f /drivers/crypto/qce/sha.c
parentcrypto: sahara - check return value of sg_nents_for_len (diff)
downloadlinux-4fa9948ca5bf308fabd5c9b584bf710f5d393859.tar.xz
linux-4fa9948ca5bf308fabd5c9b584bf710f5d393859.zip
crypto: qce - check return value of sg_nents_for_len
The sg_nents_for_len() function could fail, this patch add a check for its return value. Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/qce/sha.c')
-rw-r--r--drivers/crypto/qce/sha.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c
index 0c9973ec80eb..47e114ac09d0 100644
--- a/drivers/crypto/qce/sha.c
+++ b/drivers/crypto/qce/sha.c
@@ -92,6 +92,11 @@ static int qce_ahash_async_req_handle(struct crypto_async_request *async_req)
}
rctx->src_nents = sg_nents_for_len(req->src, req->nbytes);
+ if (rctx->src_nents < 0) {
+ dev_err(qce->dev, "Invalid numbers of src SG.\n");
+ return rctx->src_nents;
+ }
+
ret = dma_map_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE);
if (ret < 0)
return ret;