test/evp_extra_test.c: fix null pointer dereference
It's actually not a real issue but caused by the absence of the default case which does not occur in reality but which makes coverity see a code path where pkey remains unassigned. Reported by Coverity Scan (CID 1423323) [extended tests] Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7158)
This commit is contained in:
parent
427e91d928
commit
35db366cf4
1 changed files with 24 additions and 19 deletions
|
@ -855,27 +855,32 @@ static int test_EVP_PKEY_check(int i)
|
|||
|
||||
p = input;
|
||||
|
||||
if (type == 0 &&
|
||||
(!TEST_ptr(pkey = d2i_AutoPrivateKey(NULL, &p, input_len))
|
||||
|| !TEST_ptr_eq(p, input + input_len)
|
||||
|| !TEST_int_eq(EVP_PKEY_id(pkey), expected_id)))
|
||||
goto done;
|
||||
|
||||
switch (type) {
|
||||
case 0:
|
||||
if (!TEST_ptr(pkey = d2i_AutoPrivateKey(NULL, &p, input_len))
|
||||
|| !TEST_ptr_eq(p, input + input_len)
|
||||
|| !TEST_int_eq(EVP_PKEY_id(pkey), expected_id))
|
||||
goto done;
|
||||
break;
|
||||
#ifndef OPENSSL_NO_EC
|
||||
if (type == 1 &&
|
||||
(!TEST_ptr(pubkey = BIO_new_mem_buf(input, input_len))
|
||||
|| !TEST_ptr(eckey = d2i_EC_PUBKEY_bio(pubkey, NULL))
|
||||
|| !TEST_ptr(pkey = EVP_PKEY_new())
|
||||
|| !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey))))
|
||||
goto done;
|
||||
|
||||
if (type == 2 &&
|
||||
(!TEST_ptr(eckey = d2i_ECParameters(NULL, &p, input_len))
|
||||
|| !TEST_ptr_eq(p, input + input_len)
|
||||
|| !TEST_ptr(pkey = EVP_PKEY_new())
|
||||
|| !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey))))
|
||||
goto done;
|
||||
case 1:
|
||||
if (!TEST_ptr(pubkey = BIO_new_mem_buf(input, input_len))
|
||||
|| !TEST_ptr(eckey = d2i_EC_PUBKEY_bio(pubkey, NULL))
|
||||
|| !TEST_ptr(pkey = EVP_PKEY_new())
|
||||
|| !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey)))
|
||||
goto done;
|
||||
break;
|
||||
case 2:
|
||||
if (!TEST_ptr(eckey = d2i_ECParameters(NULL, &p, input_len))
|
||||
|| !TEST_ptr_eq(p, input + input_len)
|
||||
|| !TEST_ptr(pkey = EVP_PKEY_new())
|
||||
|| !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey)))
|
||||
goto done;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!TEST_ptr(ctx = EVP_PKEY_CTX_new(pkey, NULL)))
|
||||
goto done;
|
||||
|
|
Loading…
Reference in a new issue