From: Herbert Xu Date: Mon, 7 Feb 2011 09:26:06 +0000 (+1100) Subject: crypto: sha-s390 - Reset index after processing partial block X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=9d20b571f5bda7273656e1b86ef91eddc94adacc;p=openwrt%2Fstaging%2Fblogic.git 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 --- 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 */