From: jwalch Date: Thu, 10 Sep 2020 02:36:00 +0000 (-0400) Subject: Add a NULL check to EVP_PKEY_assign X-Git-Tag: openssl-3.0.0-alpha7~229 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bb73d5409c056a878f526280f86cc3c01f8cd68;p=thirdparty%2Fopenssl.git Add a NULL check to EVP_PKEY_assign Fixes #12619 Update p_lib.c Reviewed-by: Tomas Mraz Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/12863) --- diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index e336d91286c..5e032b40536 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -709,7 +709,7 @@ int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key) int alias = type; #ifndef OPENSSL_NO_EC - if (EVP_PKEY_type(type) == EVP_PKEY_EC) { + if ((key != NULL) && (EVP_PKEY_type(type) == EVP_PKEY_EC)) { const EC_GROUP *group = EC_KEY_get0_group(key); if (group != NULL && EC_GROUP_get_curve_name(group) == NID_sm2) diff --git a/test/ecdsatest.c b/test/ecdsatest.c index f7d6608f392..471aaa184dd 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c @@ -252,6 +252,7 @@ static int test_builtin(int n, int as) || !TEST_ptr(eckey_neg = EC_KEY_new_by_curve_name(nid)) || !TEST_true(EC_KEY_generate_key(eckey_neg)) || !TEST_ptr(pkey_neg = EVP_PKEY_new()) + || !TEST_false(EVP_PKEY_assign_EC_KEY(pkey_neg, NULL)) || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey_neg, eckey_neg))) goto err;