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 <viktor@openssl.org>
This commit is contained in:
parent
dd642deea8
commit
4cb23e12a3
@ -253,7 +253,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)
|
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;
|
return 0;
|
||||||
pkey->pkey.ptr = key;
|
pkey->pkey.ptr = key;
|
||||||
return (key != NULL);
|
return (key != NULL);
|
||||||
|
@ -96,12 +96,17 @@ int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ppkey)
|
if (ppkey == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!*ppkey)
|
if (*ppkey == NULL)
|
||||||
*ppkey = EVP_PKEY_new();
|
*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);
|
ret = ctx->pmeth->paramgen(ctx, *ppkey);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
EVP_PKEY_free(*ppkey);
|
EVP_PKEY_free(*ppkey);
|
||||||
|
Loading…
Reference in New Issue
Block a user