diff options
Diffstat (limited to 'external/unbound/ldns/keyraw.c')
-rw-r--r-- | external/unbound/ldns/keyraw.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/external/unbound/ldns/keyraw.c b/external/unbound/ldns/keyraw.c index fe650aada..1ff07742b 100644 --- a/external/unbound/ldns/keyraw.c +++ b/external/unbound/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; |