summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-04-14 16:23:33 -0700
committerHerbert Xu <herbert@gondor.apana.org.au>2019-04-18 22:15:04 +0800
commit67cb60e4efe7bd9d7a7afb8297f58afe25c28919 (patch)
tree793814ab8b57c0c592bc5fee608d3e51db39f4f5
parent626ddb2fbe7931a2996bd7fe88bd1ffd5daf7143 (diff)
downloadlinux-stable-67cb60e4efe7bd9d7a7afb8297f58afe25c28919.tar.gz
linux-stable-67cb60e4efe7bd9d7a7afb8297f58afe25c28919.tar.bz2
linux-stable-67cb60e4efe7bd9d7a7afb8297f58afe25c28919.zip
crypto: shash - fix missed optimization in shash_ahash_digest()
shash_ahash_digest(), which is the ->digest() method for ahash tfms that use an shash algorithm, has an optimization where crypto_shash_digest() is called if the data is in a single page. But an off-by-one error prevented this path from being taken unless the user happened to provide extra data in the scatterlist. Fix it. Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/shash.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/shash.c b/crypto/shash.c
index 15b369c4745f..b85930e9a7a2 100644
--- a/crypto/shash.c
+++ b/crypto/shash.c
@@ -307,7 +307,7 @@ int shash_ahash_digest(struct ahash_request *req, struct shash_desc *desc)
if (nbytes &&
(sg = req->src, offset = sg->offset,
- nbytes < min(sg->length, ((unsigned int)(PAGE_SIZE)) - offset))) {
+ nbytes <= min(sg->length, ((unsigned int)(PAGE_SIZE)) - offset))) {
void *data;
data = kmap_atomic(sg_page(sg));