]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
crypto: sha512 - Fix byte counter overflow in SHA-512
authorKent Yoder <key@linux.vnet.ibm.com>
Thu, 5 Apr 2012 12:34:20 +0000 (20:34 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 5 Apr 2012 12:34:20 +0000 (20:34 +0800)
The current code only increments the upper 64 bits of the SHA-512 byte
counter when the number of bytes hashed happens to hit 2^64 exactly.

This patch increments the upper 64 bits whenever the lower 64 bits
overflows.

Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
Cc: stable@kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/sha512_generic.c

index 107f6f7be5e139129a1666f1f20aa3a6967c1ef0..dd30f40af9f505152bbc620211fa37d109eae1d7 100644 (file)
@@ -174,7 +174,7 @@ sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len)
        index = sctx->count[0] & 0x7f;
 
        /* Update number of bytes */
-       if (!(sctx->count[0] += len))
+       if ((sctx->count[0] += len) < len)
                sctx->count[1]++;
 
         part_len = 128 - index;