summaryrefslogtreecommitdiff
path: root/test/evp_pkey_provided_test.c
diff options
context:
space:
mode:
authorMilan Broz <gmazyland@gmail.com>2022-10-29 11:48:51 +0200
committerTomas Mraz <tomas@openssl.org>2022-11-10 18:10:48 +0100
commit373d90128042cb0409e347827d80b50a99d3965a (patch)
tree64b4a300cee9a2bee10a2792e823a339d08ec6e7 /test/evp_pkey_provided_test.c
parent608aca8ed2becccfe9c238846834ea2b162fc98b (diff)
downloadopenssl-new-373d90128042cb0409e347827d80b50a99d3965a.tar.gz
pem: avoid segfault if PKEY is NULL in PEM_write_bio_PrivateKey
Make the code more robust and correctly handle EVP_PKEY set to NULL instead of dereferencing null pointer. Signed-off-by: Milan Broz <gmazyland@gmail.com> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19536)
Diffstat (limited to 'test/evp_pkey_provided_test.c')
-rw-r--r--test/evp_pkey_provided_test.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/test/evp_pkey_provided_test.c b/test/evp_pkey_provided_test.c
index 1269fbf24f..3237884d7c 100644
--- a/test/evp_pkey_provided_test.c
+++ b/test/evp_pkey_provided_test.c
@@ -188,7 +188,12 @@ static int test_print_key_using_pem(const char *alg, const EVP_PKEY *pk)
/* Unencrypted private key in PEM form */
|| !TEST_true(PEM_write_bio_PrivateKey(membio, pk,
NULL, NULL, 0, NULL, NULL))
- || !TEST_true(compare_with_file(alg, PRIV_PEM, membio)))
+ || !TEST_true(compare_with_file(alg, PRIV_PEM, membio))
+ /* NULL key */
+ || !TEST_false(PEM_write_bio_PrivateKey(membio, NULL,
+ NULL, NULL, 0, NULL, NULL))
+ || !TEST_false(PEM_write_bio_PrivateKey_traditional(membio, NULL,
+ NULL, NULL, 0, NULL, NULL)))
goto err;
ret = 1;