sst-linux/crypto
Roman Smirnov 3322fa8f2a KEYS: prevent NULL pointer dereference in find_asymmetric_key()
commit 70fd1966c93bf3bfe3fe6d753eb3d83a76597eef upstream.

In find_asymmetric_key(), if all NULLs are passed in the id_{0,1,2}
arguments, the kernel will first emit WARN but then have an oops
because id_2 gets dereferenced anyway.

Add the missing id_2 check and move WARN_ON() to the final else branch
to avoid duplicate NULL checks.

Found by Linux Verification Center (linuxtesting.org) with Svace static
analysis tool.

Cc: stable@vger.kernel.org # v5.17+
Fixes: 7d30198ee2 ("keys: X.509 public key issuer lookup without AKID")
Suggested-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Roman Smirnov <r.smirnov@omp.ru>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-10-17 15:21:17 +02:00
..
asymmetric_keys KEYS: prevent NULL pointer dereference in find_asymmetric_key() 2024-10-17 15:21:17 +02:00
async_tx treewide: use get_random_bytes() when possible 2022-10-11 17:42:58 -06:00
842.c
acompress.c crypto: api - permit users to specify numa node of acomp hardware 2020-07-09 18:25:23 +10:00
adiantum.c
aead.c crypto: aead,cipher - zeroize key buffer after use 2024-07-11 12:47:05 +02:00
aegis128-core.c
aegis128-neon-inner.c
aegis128-neon.c
aegis.h crypto: aegis128 - Move simd prototypes into aegis.h 2021-03-19 21:59:45 +11:00
aes_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
aes_ti.c
af_alg.c crypto: af_alg - Disallow multiple in-flight AIO requests 2024-01-25 15:27:21 -08:00
ahash.c
akcipher.c crypto: akcipher - default implementation for setting a private key 2022-09-09 16:18:33 +08:00
algapi.c Revert "crypto: api - Disallow identical driver names" 2024-05-02 16:29:27 +02:00
algboss.c
algif_aead.c crypto: algif_aead - Do not set MAY_BACKLOG on the async path 2020-08-21 14:45:27 +10:00
algif_hash.c af_alg_make_sg(): switch to advancing variant of iov_iter_get_pages() 2022-08-08 22:37:23 -04:00
algif_rng.c
algif_skcipher.c
ansi_cprng.c crypto: remove cipher routines from public crypto API 2021-01-03 08:41:35 +11:00
anubis.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
api.c crypto: core - move from strlcpy with unused retval to strscpy 2022-08-26 18:50:38 +08:00
arc4.c crypto: arc4 - mark ecb(arc4) skcipher as obsolete 2020-09-11 14:39:16 +10:00
aria_generic.c crypto: aria - prepare generic module for optimized implementations 2022-09-24 16:14:44 +08:00
authenc.c
authencesn.c
blake2b_generic.c
blowfish_common.c
blowfish_generic.c
camellia_generic.c
cast5_generic.c crypto: cast5 - use unaligned accessors instead of alignmask 2021-02-10 17:55:56 +11:00
cast6_generic.c crypto: cast6 - use unaligned accessors instead of alignmask 2021-02-10 17:55:56 +11:00
cast_common.c
cbc.c crypto: remove cipher routines from public crypto API 2021-01-03 08:41:35 +11:00
ccm.c
cfb.c
chacha20poly1305.c
chacha_generic.c
cipher.c crypto: aead,cipher - zeroize key buffer after use 2024-07-11 12:47:05 +02:00
cmac.c crypto: remove cipher routines from public crypto API 2021-01-03 08:41:35 +11:00
compress.c
crc32_generic.c crypto: crc32-generic - Use SPDX-License-Identifier 2021-04-16 21:24:27 +10:00
crc32c_generic.c
crc64_rocksoft_generic.c
crct10dif_common.c crypto: crct10dif - Add fallback for broken initrds 2013-09-12 15:31:34 +10:00
crct10dif_generic.c
cryptd.c crypto: cryptd - Use request context instead of stack for sub-request 2022-12-31 13:32:33 +01:00
crypto_engine.c crypto: engine - fix crypto_queue backlog handling 2023-05-17 11:53:40 +02:00
crypto_null.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-07-08 20:57:08 -07:00
crypto_user_base.c
crypto_user_stat.c
ctr.c
cts.c crypto: algapi - use common mechanism for inheriting flags 2020-07-16 21:49:08 +10:00
curve25519-generic.c crypto: add __init/__exit annotations to init/exit funcs 2022-09-24 16:14:43 +08:00
deflate.c
des_generic.c crypto: remove CRYPTO_TFM_RES_WEAK_KEY 2020-01-09 11:30:53 +08:00
dh_helper.c
dh.c crypto: add __init/__exit annotations to init/exit funcs 2022-09-24 16:14:43 +08:00
drbg.c crypto: drbg - Only fail when jent is unavailable in FIPS mode 2023-05-11 23:03:21 +09:00
ecb.c
ecc_curve_defs.h
ecc.c
ecdh_helper.c
ecdh.c crypto: ecdh - explicitly zeroize private_key 2024-07-05 09:31:49 +02:00
ecdsa.c crypto: ecdsa - Fix module auto-load on add-key 2024-06-16 13:41:37 +02:00
ecdsasignature.asn1
echainiv.c crypto: geniv - remove unneeded arguments from aead_geniv_alloc() 2020-07-16 21:49:07 +10:00
ecrdsa_defs.h crypto: ecc - Move ecc.h to include/crypto/internal 2021-10-29 21:04:03 +08:00
ecrdsa_params.asn1
ecrdsa_pub_key.asn1
ecrdsa.c crypto: ecrdsa - Fix module auto-load on add_key 2024-06-16 13:41:37 +02:00
essiv.c crypto: essiv - Handle EBUSY correctly 2023-03-10 09:32:56 +01:00
fcrypt.c
fips.c crypto: fips - make proc files report fips module name and version 2022-07-15 16:43:22 +08:00
gcm.c mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
geniv.c
gf128mul.c
ghash-generic.c
hash_info.c
hctr2.c crypto: hctr2 - Add HCTR2 support 2022-06-10 16:40:17 +08:00
hmac.c
internal.h
jitterentropy-kcapi.c crypto: jitter - permanent and intermittent health errors 2023-05-24 17:32:38 +01:00
jitterentropy.c crypto: jitter - correct health test during initialization 2023-07-19 16:21:42 +02:00
jitterentropy.h crypto: jitter - permanent and intermittent health errors 2023-05-24 17:32:38 +01:00
Kconfig crypto: jitter - fix CRYPTO_JITTERENTROPY help text 2024-03-26 18:20:50 -04:00
kdf_sp800108.c
keywrap.c
khazad.c
kpp.c crypto: add crypto_has_kpp() 2022-08-02 17:14:47 -06:00
lrw.c crypto: lrw,xts - Replace strlcpy with strscpy 2023-09-23 11:11:01 +02:00
lz4.c
lz4hc.c
lzo-rle.c
lzo.c
Makefile crypto: aria - prepare generic module for optimized implementations 2022-09-24 16:14:44 +08:00
md4.c
md5.c
michael_mic.c
nhpoly1305.c
ofb.c
pcbc.c
pcrypt.c crypto: pcrypt - Fix hungtask for PADATA_RESET 2023-11-28 17:06:58 +00:00
poly1305_generic.c crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
polyval-generic.c crypto: x86/polyval - Add PCLMULQDQ accelerated implementation of POLYVAL 2022-06-10 16:40:17 +08:00
proc.c
ripemd.h crypto: rmd320 - remove RIPE-MD 320 hash algorithm 2021-01-29 16:07:04 +11:00
rmd160.c
rng.c crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS 2021-04-02 18:28:12 +11:00
rsa_helper.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rsa-pkcs1pad.c crypto: rsa-pkcs1pad - Use helper to set reqsize 2023-09-13 09:42:26 +02:00
rsa.c crypto: add __init/__exit annotations to init/exit funcs 2022-09-24 16:14:43 +08:00
rsaprivkey.asn1
rsapubkey.asn1
scatterwalk.c
scompress.c crypto: scomp - fix req->dst buffer overflow 2024-01-25 15:27:23 -08:00
seed.c
seqiv.c crypto: seqiv - Handle EBUSY correctly 2023-03-10 09:32:56 +01:00
serpent_generic.c crypto: serpent - Fix sparse byte order warnings 2021-03-07 15:13:15 +11:00
sha1_generic.c crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
sha3_generic.c
sha256_generic.c
sha512_generic.c
shash.c crypto: add crypto_has_shash() 2022-08-02 17:14:47 -06:00
simd.c crypto: algapi - use common mechanism for inheriting flags 2020-07-16 21:49:08 +10:00
skcipher.c
sm2.c crypto: add __init/__exit annotations to init/exit funcs 2022-09-24 16:14:43 +08:00
sm2signature.asn1
sm3_generic.c
sm3.c crypto: sm3,sm4 - move into crypto directory 2022-04-08 16:11:48 +08:00
sm4_generic.c
sm4.c
streebog_generic.c
tcrypt.c crypto: tcrypt - Fix multibuffer skcipher speed test mem leak 2022-12-31 13:32:34 +01:00
tcrypt.h crypto: tcrypt - Add support for hash speed testing with keys 2020-08-21 14:45:27 +10:00
tea.c
testmgr.c crypto: testmgr - fix RNG performance in fuzz tests 2023-05-24 17:32:53 +01:00
testmgr.h crypto: testmgr - some more fixes to RSA test vectors 2022-07-22 16:22:04 +08:00
twofish_common.c crypto: twofish - Fix comment typo 2022-07-22 16:22:04 +08:00
twofish_generic.c
vmac.c
wp512.c
xcbc.c
xctr.c crypto: xctr - Add XCTR support 2022-06-10 16:40:16 +08:00
xor.c crypto: xor - fix template benchmarking 2024-10-17 15:20:36 +02:00
xts.c crypto: lrw,xts - Replace strlcpy with strscpy 2023-09-23 11:11:01 +02:00
xxhash_generic.c
zstd.c