diff options
author | David Ramos <daramos@stanford.edu> | 2014-05-03 12:00:27 +0200 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2014-05-04 00:46:20 +0100 |
commit | 16ba70746b3bd9d1bd17cf7135c00ff1e47dfcfe (patch) | |
tree | f7ad517c50266644a8c5a9fdc99b885f70fe02e7 /crypto/ec/ec_asn1.c | |
parent | da12bfca5196819db2d2b1880cd6231f8320e330 (diff) |
Double free in i2o_ECPublicKey
PR: 3338
Diffstat (limited to 'crypto/ec/ec_asn1.c')
-rw-r--r-- | crypto/ec/ec_asn1.c | 7 |
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) |