Skip to content
  • Eric Biggers's avatar
    crypto: ahash - fix another early termination in hash walk · 82351c83
    Eric Biggers authored
    
    
    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: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    82351c83