Check return value of OBJ_nid2obj in dsa_pub_encode.

CLA: trivial

Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/4600)

(cherry picked from commit 7760384b403a61824c43cc767a11cd22abfa9e49)
This commit is contained in:
Pavel Kopyl 2017-10-27 16:18:06 +03:00 committed by Bernd Edlinger
parent 98fe34c30f
commit 200de40421

View File

@ -133,6 +133,7 @@ static int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
unsigned char *penc = NULL; unsigned char *penc = NULL;
int penclen; int penclen;
ASN1_STRING *str = NULL; ASN1_STRING *str = NULL;
ASN1_OBJECT *aobj;
dsa = pkey->pkey.dsa; dsa = pkey->pkey.dsa;
if (pkey->save_parameters && dsa->p && dsa->q && dsa->g) { if (pkey->save_parameters && dsa->p && dsa->q && dsa->g) {
@ -159,8 +160,11 @@ static int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
goto err; goto err;
} }
if (X509_PUBKEY_set0_param(pk, OBJ_nid2obj(EVP_PKEY_DSA), aobj = OBJ_nid2obj(EVP_PKEY_DSA);
ptype, str, penc, penclen)) if (aobj == NULL)
goto err;
if (X509_PUBKEY_set0_param(pk, aobj, ptype, str, penc, penclen))
return 1; return 1;
err: err: