crypto: sha-s390 - Reset index after processing partial block
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 7 Feb 2011 09:26:06 +0000 (20:26 +1100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 7 Feb 2011 09:26:06 +0000 (20:26 +1100)
The partial block handling in sha-s390 is broken when we get a
partial block that is followed by an update which fills it with
bytes left-over.  Instead of storing the newly left-over bytes
at the start of the buffer, it will be stored immediately after
the previous partial block.

This patch fixes this by resetting the index pointer.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/s390/crypto/sha_common.c

index f42dbab..48884f8 100644 (file)
@@ -38,6 +38,7 @@ int s390_sha_update(struct shash_desc *desc, const u8 *data, unsigned int len)
                BUG_ON(ret != bsize);
                data += bsize - index;
                len -= bsize - index;
+               index = 0;
        }
 
        /* process as many blocks as possible */