From: Wouter Wijngaards Date: Mon, 10 Nov 2014 13:26:16 +0000 (+0000) Subject: Fixup free in case of buffer short. X-Git-Tag: release-1.5.0rc1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c991f3d9e654f1a7f9aa29348fd393827f0856a0;p=thirdparty%2Funbound.git Fixup free in case of buffer short. git-svn-id: file:///svn/unbound/trunk@3256 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/ldns/keyraw.c b/ldns/keyraw.c index fe650aada..1ff07742b 100644 --- a/ldns/keyraw.c +++ b/ldns/keyraw.c @@ -324,8 +324,10 @@ sldns_ecdsa2pkey_raw(unsigned char* key, size_t keylen, uint8_t algo) ec = EC_KEY_new_by_curve_name(NID_secp384r1); } else ec = NULL; if(!ec) return NULL; - if(keylen+1 > sizeof(buf)) - return NULL; /* sanity check */ + if(keylen+1 > sizeof(buf)) { /* sanity check */ + EC_KEY_free(ec); + return NULL; + } /* prepend the 0x02 (from docs) (or actually 0x04 from implementation * of openssl) for uncompressed data */ buf[0] = POINT_CONVERSION_UNCOMPRESSED;