umber-kernel/include/crypto
Eric Biggers 17900c56e2 crypto: scatterwalk - Fix memcpy_sglist() to always succeed
commit 4dffc9bbffb9ccfcda730d899c97c553599e7ca8 upstream.

The original implementation of memcpy_sglist() was broken because it
didn't handle scatterlists that describe exactly the same memory, which
is a case that many callers rely on.  The current implementation is
broken too because it calls the skcipher_walk functions which can fail.
It ignores any errors from those functions.

Fix it by replacing it with a new implementation written from scratch.
It always succeeds.  It's also a bit faster, since it avoids the
overhead of skcipher_walk.  skcipher_walk includes a lot of
functionality (such as alignmask handling) that's irrelevant here.

Reported-by: Colin Ian King <coking@nvidia.com>
Closes: https://lore.kernel.org/r/20251114122620.111623-1-coking@nvidia.com
Fixes: 131bdceca1 ("crypto: scatterwalk - Add memcpy_sglist")
Fixes: 0f8d42bf12 ("crypto: scatterwalk - Move skcipher walk and use it for memcpy_sglist")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-01-02 12:57:08 +01:00
..
internal
acompress.h
aead.h
aes.h
akcipher.h
algapi.h
arc4.h
aria.h
authenc.h
b128ops.h
blake2b.h
blake2s.h
blowfish.h
cast5.h
cast6.h
cast_common.h
chacha.h
chacha20poly1305.h
cryptd.h
ctr.h
curve25519.h
des.h
dh.h
drbg.h
ecc_curve.h
ecdh.h
engine.h
gcm.h
gf128mul.h
ghash.h
hash.h
hash_info.h
hkdf.h
hmac.h
if_alg.h
kdf_sp800108.h
kpp.h
krb5.h
md5.h
nhpoly1305.h
null.h
padlock.h
pcrypt.h
pkcs7.h
poly1305.h
polyval.h
public_key.h
rng.h
scatterwalk.h
serpent.h
sha1.h
sha2.h
sha3.h
sig.h
skcipher.h
sm3.h
sm3_base.h
sm4.h
streebog.h
twofish.h
utils.h
xts.h