diff options
author | Richard Levitte <levitte@openssl.org> | 2002-05-30 16:47:45 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2002-05-30 16:47:45 +0000 |
commit | 9cdf87f19431b32a50b12e468cf2a9557cfc3568 (patch) | |
tree | 5aa5e1f88093d6b8013b9e2f1af0b18201b9bef6 /crypto/asn1/x_pubkey.c | |
parent | a81e9d3dc45f29c1a5fde7fa641a43f796fe92d4 (diff) | |
download | openssl-9cdf87f19431b32a50b12e468cf2a9557cfc3568.zip openssl-9cdf87f19431b32a50b12e468cf2a9557cfc3568.tar.gz openssl-9cdf87f19431b32a50b12e468cf2a9557cfc3568.tar.bz2 |
Check the return values where memory allocation failures may happen.
PR: 49
Diffstat (limited to 'crypto/asn1/x_pubkey.c')
-rw-r--r-- | crypto/asn1/x_pubkey.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crypto/asn1/x_pubkey.c b/crypto/asn1/x_pubkey.c index f1ddbf0..7f7952f 100644 --- a/crypto/asn1/x_pubkey.c +++ b/crypto/asn1/x_pubkey.c @@ -119,7 +119,7 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey) dsa->write_params=0; ASN1_TYPE_free(a->parameter); i=i2d_DSAparams(dsa,NULL); - p=(unsigned char *)OPENSSL_malloc(i); + if ((p=(unsigned char *)OPENSSL_malloc(i)) == NULL) goto err; pp=p; i2d_DSAparams(dsa,&pp); a->parameter=ASN1_TYPE_new(); @@ -189,7 +189,11 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey) } if ((i=i2d_PublicKey(pkey,NULL)) <= 0) goto err; - if ((s=(unsigned char *)OPENSSL_malloc(i+1)) == NULL) goto err; + if ((s=(unsigned char *)OPENSSL_malloc(i+1)) == NULL) + { + X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE); + goto err; + } p=s; i2d_PublicKey(pkey,&p); if (!M_ASN1_BIT_STRING_set(pk->public_key,s,i)) goto err; |