]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Mon, 10 Feb 2014 21:11:38 +0000 (16:11 -0500)
commit 25c3d30c918207556ae1d6e663150ebdf902186b upstream.

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>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
crypto/sha512_generic.c

index 9ed9f60316e545b6bc0ad68f9ef8c50413450685..899b2fa24e50e03e24a21625b0737ce197206922 100644 (file)
@@ -177,7 +177,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;