From cdf96e588654cb686add87fee2429cf687f821b2 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Fri, 20 Jun 2014 12:00:00 -0700 Subject: [PATCH] Double free in i2o_ECPublicKey PR: 3338 (Imported from upstream's e34af3ec2b1230a8a523d383f7de505f7cbd381d) --- crypto/ec/ec_asn1.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crypto/ec/ec_asn1.c b/crypto/ec/ec_asn1.c index 2aa319b18..35fff7447 100644 --- a/crypto/ec/ec_asn1.c +++ b/crypto/ec/ec_asn1.c @@ -544,8 +544,10 @@ int i2o_ECPublicKey(const EC_KEY *key, uint8_t **outp) { if (!EC_POINT_point2oct(key->group, key->pub_key, key->conv_form, *outp, buf_len, NULL)) { OPENSSL_PUT_ERROR(EC, i2o_ECPublicKey, ERR_R_EC_LIB); - OPENSSL_free(*outp); - *outp = NULL; + if (new_buffer) { + OPENSSL_free(*outp); + *outp = NULL; + } return 0; }