summaryrefslogtreecommitdiffstats
path: root/crypto/salsa20_generic.c
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-04-09 23:46:29 -0700
committerHerbert Xu <herbert@gondor.apana.org.au>2019-04-18 22:14:58 +0800
commitaec286cd36eacfd797e3d5dab8d5d23c15d1bb5e (patch)
tree2fc6e16572eaea0884bbaaea1135f9bb1de302dd /crypto/salsa20_generic.c
parent11fe71f146ee652a30ffc3c204105c2d81a00d1c (diff)
crypto: lrw - don't access already-freed walk.iv
If the user-provided IV needs to be aligned to the algorithm's alignmask, then skcipher_walk_virt() copies the IV into a new aligned buffer walk.iv. But skcipher_walk_virt() can fail afterwards, and then if the caller unconditionally accesses walk.iv, it's a use-after-free. Fix this in the LRW template by checking the return value of skcipher_walk_virt(). This bug was detected by my patches that improve testmgr to fuzz algorithms against their generic implementation. When the extra self-tests were run on a KASAN-enabled kernel, a KASAN use-after-free splat occured during lrw(aes) testing. Fixes: c778f96bf347 ("crypto: lrw - Optimize tweak computation") Cc: <stable@vger.kernel.org> # v4.20+ Cc: Ondrej Mosnacek <omosnace@redhat.com> Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/salsa20_generic.c')
0 files changed, 0 insertions, 0 deletions