summary refs log tree commit diff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2011-02-07 20:26:06 +1100
committerHerbert Xu <herbert@gondor.apana.org.au>2011-02-07 20:26:06 +1100
commit9d20b571f5bda7273656e1b86ef91eddc94adacc (patch)
tree54ed61190b0710813b68fadbbd25bed47c3f31f1
parent1bae4ce27c9c90344f23c65ea6966c50ffeae2f5 (diff)
downloadlinux-9d20b571f5bda7273656e1b86ef91eddc94adacc.tar.gz
crypto: sha-s390 - Reset index after processing partial block
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>
-rw-r--r--arch/s390/crypto/sha_common.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/crypto/sha_common.c b/arch/s390/crypto/sha_common.c
index f42dbabc0d30..48884f89ab92 100644
--- a/arch/s390/crypto/sha_common.c
+++ b/arch/s390/crypto/sha_common.c
@@ -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 */