For the special case when we have a null input string, we want
to initialize the entry len to 0 for the hash/ahash walk, so
cyrpto_hash_walk_last will return the correct result indicating
that we have completed the scatter list walk.  Otherwise we may
keep walking the sg list and access bogus memory address.

Signed-off-by: Tim Chen <[email protected]>
---
 crypto/ahash.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/crypto/ahash.c b/crypto/ahash.c
index f2a5d8f..f6a36a5 100644
--- a/crypto/ahash.c
+++ b/crypto/ahash.c
@@ -131,8 +131,10 @@ int crypto_hash_walk_first(struct ahash_request *req,
 {
        walk->total = req->nbytes;
 
-       if (!walk->total)
+       if (!walk->total) {
+               walk->entrylen = 0;
                return 0;
+       }
 
        walk->alignmask = crypto_ahash_alignmask(crypto_ahash_reqtfm(req));
        walk->sg = req->src;
@@ -147,8 +149,10 @@ int crypto_ahash_walk_first(struct ahash_request *req,
 {
        walk->total = req->nbytes;
 
-       if (!walk->total)
+       if (!walk->total) {
+               walk->entrylen = 0;
                return 0;
+       }
 
        walk->alignmask = crypto_ahash_alignmask(crypto_ahash_reqtfm(req));
        walk->sg = req->src;
@@ -167,8 +171,10 @@ int crypto_hash_walk_first_compat(struct hash_desc *hdesc,
 {
        walk->total = len;
 
-       if (!walk->total)
+       if (!walk->total) {
+               walk->entrylen = 0;
                return 0;
+       }
 
        walk->alignmask = crypto_hash_alignmask(hdesc->tfm);
        walk->sg = sg;
-- 
1.7.11.7


--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to