aboutsummaryrefslogtreecommitdiff
path: root/crypto/asn1/x_pubkey.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2002-05-30 16:47:45 +0000
committerRichard Levitte <levitte@openssl.org>2002-05-30 16:47:45 +0000
commit9cdf87f19431b32a50b12e468cf2a9557cfc3568 (patch)
tree5aa5e1f88093d6b8013b9e2f1af0b18201b9bef6 /crypto/asn1/x_pubkey.c
parenta81e9d3dc45f29c1a5fde7fa641a43f796fe92d4 (diff)
downloadopenssl-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.c8
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;