From: Emilia Kasper Date: Tue, 1 Sep 2015 14:31:55 +0000 (+0200) Subject: RT3754: check for NULL pointer X-Git-Tag: OpenSSL_1_1_0-pre1~631 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e34c66c6b07d69ec4df8e488976e28d851ad87e6;p=thirdparty%2Fopenssl.git RT3754: check for NULL pointer Fix both the caller to error out on malloc failure, as well as the eventual callee to handle a NULL gracefully. Reviewed-by: Viktor Dukhovni --- diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index daa3d57c02..f07d7e5e4f 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -261,7 +261,7 @@ int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len) int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key) { - if (!EVP_PKEY_set_type(pkey, type)) + if (pkey == NULL || !EVP_PKEY_set_type(pkey, type)) return 0; pkey->pkey.ptr = key; return (key != NULL); diff --git a/crypto/evp/pmeth_gn.c b/crypto/evp/pmeth_gn.c index 705801fc02..9416e1ab72 100644 --- a/crypto/evp/pmeth_gn.c +++ b/crypto/evp/pmeth_gn.c @@ -96,12 +96,17 @@ int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey) return -1; } - if (!ppkey) + if (ppkey == NULL) return -1; - if (!*ppkey) + if (*ppkey == NULL) *ppkey = EVP_PKEY_new(); + if (*ppkey == NULL) { + EVPerr(EVP_F_EVP_PKEY_PARAMGEN, ERR_R_MALLOC_FAILURE); + return -1; + } + ret = ctx->pmeth->paramgen(ctx, *ppkey); if (ret <= 0) { EVP_PKEY_free(*ppkey);