summaryrefslogtreecommitdiff
path: root/crypto/evp
diff options
context:
space:
mode:
authorzhailiangliang <zhailiangliang@loongson.cn>2023-02-15 10:43:01 +0800
committerPauli <pauli@openssl.org>2023-02-23 09:19:39 +1100
commitab5a172f1b41b12133b95822d5bf004c322965cb (patch)
treefb4820385b4f21dfc423a85d0228a080cb825dbb /crypto/evp
parent45bb98bfa223efd3258f445ad443f878011450f0 (diff)
downloadopenssl-new-ab5a172f1b41b12133b95822d5bf004c322965cb.tar.gz
Fix potential NULL pointer dereference in function evp_pkey_asn1_ctrl
CLA: trivial Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20294)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/p_lib.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c
index 905e9c9ce4..554fad927c 100644
--- a/crypto/evp/p_lib.c
+++ b/crypto/evp/p_lib.c
@@ -1324,6 +1324,8 @@ static int evp_pkey_asn1_ctrl(EVP_PKEY *pkey, int op, int arg1, void *arg2)
int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
{
+ if (pkey == NULL)
+ return 0;
return evp_pkey_asn1_ctrl(pkey, ASN1_PKEY_CTRL_DEFAULT_MD_NID, 0, pnid);
}
@@ -1374,7 +1376,9 @@ int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX *libctx,
int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey, const unsigned char *pub,
size_t publen)
{
- if (pkey != NULL && evp_pkey_is_provided(pkey))
+ if (pkey == NULL)
+ return 0;
+ if (evp_pkey_is_provided(pkey))
return
EVP_PKEY_set_octet_string_param(pkey,
OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY,
@@ -1393,7 +1397,9 @@ size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char **ppub)
{
int rv;
- if (pkey != NULL && evp_pkey_is_provided(pkey)) {
+ if (pkey == NULL)
+ return 0;
+ if (evp_pkey_is_provided(pkey)) {
size_t return_size = OSSL_PARAM_UNMODIFIED;
unsigned char *buf;