fix a memory leak in key.cpp

- add EC_KEY_free() in CKey::Reset() when pkey != NULL
- init pkey with NULL in CKey constructor
This commit is contained in:
Philip Kaufmann 2012-06-21 12:05:06 +02:00
parent d65e959bae
commit a3d12f445a

View file

@ -129,6 +129,8 @@ void CKey::SetCompressedPubKey()
void CKey::Reset() void CKey::Reset()
{ {
fCompressedPubKey = false; fCompressedPubKey = false;
if (pkey != NULL)
EC_KEY_free(pkey);
pkey = EC_KEY_new_by_curve_name(NID_secp256k1); pkey = EC_KEY_new_by_curve_name(NID_secp256k1);
if (pkey == NULL) if (pkey == NULL)
throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name failed"); throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name failed");
@ -137,6 +139,7 @@ void CKey::Reset()
CKey::CKey() CKey::CKey()
{ {
pkey = NULL;
Reset(); Reset();
} }