diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2009-11-12 19:57:39 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2009-11-12 19:57:39 +0000 |
commit | 4434328b0ab664ae3d6cb4a97aad38d6ea9b9e06 (patch) | |
tree | be84cbb3f661e63bd8ccc4557e604f47c8a3075e /crypto/asn1 | |
parent | 9b2cfb890c39df791a5c6ade81d08b9885e1a0c4 (diff) | |
download | openssl-new-4434328b0ab664ae3d6cb4a97aad38d6ea9b9e06.tar.gz |
PR: 2088
Submitted by: Aleksey Samsonov <s4ms0n0v@gmail.com>
Approved by: steve@openssl.org
Fix memory leak in d2i_PublicKey().
Diffstat (limited to 'crypto/asn1')
-rw-r--r-- | crypto/asn1/d2i_pu.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/crypto/asn1/d2i_pu.c b/crypto/asn1/d2i_pu.c index 3694f51a8c..c8f39ceb03 100644 --- a/crypto/asn1/d2i_pu.c +++ b/crypto/asn1/d2i_pu.c @@ -87,9 +87,13 @@ EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, } else ret= *a; - ret->save_type=type; - ret->type=EVP_PKEY_type(type); - switch (ret->type) + if (!EVP_PKEY_set_type(ret, type)) + { + ASN1err(ASN1_F_D2I_PUBLICKEY,ERR_R_EVP_LIB); + goto err; + } + + switch (EVP_PKEY_id(ret)) { #ifndef OPENSSL_NO_RSA case EVP_PKEY_RSA: |