namemap: handle a NULL return when looking for a non-legacy cipher/MD
authorPauli <pauli@openssl.org>
Mon, 20 Dec 2021 23:17:04 +0000 (10:17 +1100)
committerPauli <pauli@openssl.org>
Wed, 22 Dec 2021 23:51:05 +0000 (10:51 +1100)
Fixes #17313

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17324)

(cherry picked from commit 7a85dd46e0b2f67b341c777509f0126e3252938d)

crypto/core_namemap.c

index e1da724bd2f4df02d720609f4462c7eadd73fc47..2bee5ef194473991625a9e5bfdba96b4e1d7264b 100644 (file)
@@ -409,14 +409,16 @@ static void get_legacy_cipher_names(const OBJ_NAME *on, void *arg)
 {
     const EVP_CIPHER *cipher = (void *)OBJ_NAME_get(on->name, on->type);
 
-    get_legacy_evp_names(NID_undef, EVP_CIPHER_get_type(cipher), NULL, arg);
+    if (cipher != NULL)
+        get_legacy_evp_names(NID_undef, EVP_CIPHER_get_type(cipher), NULL, arg);
 }
 
 static void get_legacy_md_names(const OBJ_NAME *on, void *arg)
 {
     const EVP_MD *md = (void *)OBJ_NAME_get(on->name, on->type);
 
-    get_legacy_evp_names(0, EVP_MD_get_type(md), NULL, arg);
+    if (md != NULL)
+        get_legacy_evp_names(0, EVP_MD_get_type(md), NULL, arg);
 }
 
 static void get_legacy_pkey_meth_names(const EVP_PKEY_ASN1_METHOD *ameth,