]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
crypto: comp - Use same definition of context alloc and free ops
authorDan Moulding <dan@danm.net>
Mon, 8 Sep 2025 16:12:43 +0000 (10:12 -0600)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 20 Sep 2025 12:21:03 +0000 (20:21 +0800)
commitf75f66683ded09f7135aef2e763c245a07c8271a
treed4ace9c4865317a43687848972db980a4fdc6c3f
parent381e8ee368234a51b3a4f231f6f24ff0b09d9f9e
crypto: comp - Use same definition of context alloc and free ops

In commit 42d9f6c77479 ("crypto: acomp - Move scomp stream allocation
code into acomp"), the crypto_acomp_streams struct was made to rely on
having the alloc_ctx and free_ctx operations defined in the same order
as the scomp_alg struct. But in that same commit, the alloc_ctx and
free_ctx members of scomp_alg may be randomized by structure layout
randomization, since they are contained in a pure ops structure
(containing only function pointers). If the pointers within scomp_alg
are randomized, but those in crypto_acomp_streams are not, then
the order may no longer match. This fixes the problem by removing the
union from scomp_alg so that both crypto_acomp_streams and scomp_alg
will share the same definition of alloc_ctx and free_ctx, ensuring
they will always have the same layout.

Signed-off-by: Dan Moulding <dan@danm.net>
Suggested-by: Herbert Xu <herbert@gondor.apana.org.au>
Fixes: 42d9f6c77479 ("crypto: acomp - Move scomp stream allocation code into acomp")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/842.c
crypto/lz4.c
crypto/lz4hc.c
crypto/lzo-rle.c
crypto/lzo.c
drivers/crypto/nx/nx-common-powernv.c
drivers/crypto/nx/nx-common-pseries.c
include/crypto/internal/scompress.h