summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLABBE Corentin <clabbe.montjoie@gmail.com>2015-09-09 14:27:07 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2015-09-10 17:22:55 +0800
commit9da75de030bb6e49475ef37c8495d07e98cfeb33 (patch)
tree728713e8fbfe7790c480e663fab64d6ce4b9af7b
parentf1ab428711358fbb747ba392c3448462494e6c6a (diff)
downloadlinux-9da75de030bb6e49475ef37c8495d07e98cfeb33.tar.gz
linux-9da75de030bb6e49475ef37c8495d07e98cfeb33.tar.bz2
linux-9da75de030bb6e49475ef37c8495d07e98cfeb33.zip
crypto: sunxi-ss - Fix a possible driver hang with ciphers
The sun4i_ss_opti_poll function cipher data until the output miter have a length of 0. If the crypto API client, give more SGs than necessary this could result in an infinite loop. Fix it by checking for remaining bytes, just like sun4i_ss_cipher_poll(). Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/sunxi-ss/sun4i-ss-cipher.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
index e070c316e8b7..a19ee127edca 100644
--- a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
@@ -104,7 +104,7 @@ static int sun4i_ss_opti_poll(struct ablkcipher_request *areq)
sg_miter_next(&mo);
oo = 0;
}
- } while (mo.length > 0);
+ } while (oleft > 0);
if (areq->info) {
for (i = 0; i < 4 && i < ivsize / 4; i++) {