]> git.itanic.dy.fi Git - linux-stable/commit
crypto: ahash - fix another early termination in hash walk
authorEric Biggers <ebiggers@google.com>
Fri, 1 Feb 2019 07:51:41 +0000 (23:51 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Mar 2019 07:44:32 +0000 (08:44 +0100)
commit82351c83b1c5a4c4052207cffaf2423a4c5e7871
tree0b0db2d4b855e4aa5d829a1319542cb5e25ab408
parentef3e805c9476e17743b8eeaa9c8fa5b0c7cbf9c0
crypto: ahash - fix another early termination in hash walk

commit 77568e535af7c4f97eaef1e555bf0af83772456c upstream.

Hash algorithms with an alignmask set, e.g. "xcbc(aes-aesni)" and
"michael_mic", fail the improved hash tests because they sometimes
produce the wrong digest.  The bug is that in the case where a
scatterlist element crosses pages, not all the data is actually hashed
because the scatterlist walk terminates too early.  This happens because
the 'nbytes' variable in crypto_hash_walk_done() is assigned the number
of bytes remaining in the page, then later interpreted as the number of
bytes remaining in the scatterlist element.  Fix it.

Fixes: 900a081f6912 ("crypto: ahash - Fix early termination in hash walk")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/ahash.c