diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2016-04-22 12:56:31 +0300 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2016-04-25 19:14:52 +0800 |
commit | b908bd3d4c4110a8a2ed84e2b6ab56fa7201db25 (patch) | |
tree | 9fc7a18513c926dc29011cdb7d8446c4d7c60cb3 /drivers/crypto | |
parent | 3639ca840df953f9af6f15fc8a6bf77f19075ab1 (diff) | |
download | linux-rpi3-b908bd3d4c4110a8a2ed84e2b6ab56fa7201db25.tar.gz linux-rpi3-b908bd3d4c4110a8a2ed84e2b6ab56fa7201db25.tar.bz2 linux-rpi3-b908bd3d4c4110a8a2ed84e2b6ab56fa7201db25.zip |
crypto: mxc-scc - signedness bugs in mxc_scc_ablkcipher_req_init()
->src_nents and ->dst_nents are unsigned so they can't be less than
zero. I fixed this by introducing a temporary "nents" variable.
Fixes: d293b640ebd5 ('crypto: mxc-scc - add basic driver for the MXC SCC')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/mxc-scc.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/crypto/mxc-scc.c b/drivers/crypto/mxc-scc.c index 38b01bf141d3..9b348a78dd23 100644 --- a/drivers/crypto/mxc-scc.c +++ b/drivers/crypto/mxc-scc.c @@ -210,18 +210,21 @@ static int mxc_scc_ablkcipher_req_init(struct ablkcipher_request *req, struct mxc_scc_ctx *ctx) { struct mxc_scc *scc = ctx->scc; + int nents; - ctx->src_nents = sg_nents_for_len(req->src, req->nbytes); - if (ctx->src_nents < 0) { + nents = sg_nents_for_len(req->src, req->nbytes); + if (nents < 0) { dev_err(scc->dev, "Invalid number of src SC"); - return ctx->src_nents; + return nents; } + ctx->src_nents = nents; - ctx->dst_nents = sg_nents_for_len(req->dst, req->nbytes); - if (ctx->dst_nents < 0) { + nents = sg_nents_for_len(req->dst, req->nbytes); + if (nents < 0) { dev_err(scc->dev, "Invalid number of dst SC"); - return ctx->dst_nents; + return nents; } + ctx->dst_nents = nents; ctx->size = 0; ctx->offset = 0; |