diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2011-02-07 10:26:06 +0100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-02-07 10:26:06 +0100 |
commit | 9d20b571f5bda7273656e1b86ef91eddc94adacc (patch) | |
tree | 54ed61190b0710813b68fadbbd25bed47c3f31f1 /arch/s390 | |
parent | Linux 2.6.38-rc2 (diff) | |
download | linux-9d20b571f5bda7273656e1b86ef91eddc94adacc.tar.xz linux-9d20b571f5bda7273656e1b86ef91eddc94adacc.zip |
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>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/crypto/sha_common.c | 1 |
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 */ |