From: Pauli Date: Thu, 6 Sep 2018 23:04:59 +0000 (+1000) Subject: Avoid SEGV when giving X509_sign a NULL private key. X-Git-Tag: OpenSSL_1_1_1~39 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a6465b3f8557f69e84e7d8e097f9c45ba4479dd6;p=oweals%2Fopenssl.git Avoid SEGV when giving X509_sign a NULL private key. Put a NULL check back in to avoid dereferencing the NULL pointer. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7146) --- diff --git a/crypto/evp/pmeth_lib.c b/crypto/evp/pmeth_lib.c index 6a0fc81f1f..ef923fdc5e 100644 --- a/crypto/evp/pmeth_lib.c +++ b/crypto/evp/pmeth_lib.c @@ -106,6 +106,8 @@ static EVP_PKEY_CTX *int_ctx_new(EVP_PKEY *pkey, ENGINE *e, int id) const EVP_PKEY_METHOD *pmeth; if (id == -1) { + if (pkey == NULL) + return 0; id = pkey->type; } #ifndef OPENSSL_NO_ENGINE @@ -151,7 +153,7 @@ static EVP_PKEY_CTX *int_ctx_new(EVP_PKEY *pkey, ENGINE *e, int id) ret->pmeth = pmeth; ret->operation = EVP_PKEY_OP_UNDEFINED; ret->pkey = pkey; - if (pkey) + if (pkey != NULL) EVP_PKEY_up_ref(pkey); if (pmeth->init) {