aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ramos <daramos@stanford.edu>2014-05-03 12:00:27 +0200
committerMatt Caswell <matt@openssl.org>2014-05-04 00:46:20 +0100
commit16ba70746b3bd9d1bd17cf7135c00ff1e47dfcfe (patch)
treef7ad517c50266644a8c5a9fdc99b885f70fe02e7
parentda12bfca5196819db2d2b1880cd6231f8320e330 (diff)
downloadopenssl-16ba70746b3bd9d1bd17cf7135c00ff1e47dfcfe.tar.gz
Double free in i2o_ECPublicKey
PR: 3338
-rw-r--r--crypto/ec/ec_asn1.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/crypto/ec/ec_asn1.c b/crypto/ec/ec_asn1.c
index 145807b611..e94f34e11b 100644
--- a/crypto/ec/ec_asn1.c
+++ b/crypto/ec/ec_asn1.c
@@ -1435,8 +1435,11 @@ int i2o_ECPublicKey(EC_KEY *a, unsigned char **out)
*out, buf_len, NULL))
{
ECerr(EC_F_I2O_ECPUBLICKEY, ERR_R_EC_LIB);
- OPENSSL_free(*out);
- *out = NULL;
+ if (new_buffer)
+ {
+ OPENSSL_free(*out);
+ *out = NULL;
+ }
return 0;
}
if (!new_buffer)