aboutsummaryrefslogtreecommitdiff
path: root/src/key.cpp
diff options
context:
space:
mode:
authorPhilip Kaufmann <phil.kaufmann@t-online.de>2012-06-21 12:05:06 +0200
committerPhilip Kaufmann <phil.kaufmann@t-online.de>2012-06-21 14:43:13 +0200
commita3d12f445ab17141c52a20bc53e6533a9410ccc9 (patch)
tree28de2109a53b6bc0560cd74e8beca87886d71659 /src/key.cpp
parentd65e959baeb36a5d739fc693442ee6fdcfb8b47a (diff)
downloadbitcoin-a3d12f445ab17141c52a20bc53e6533a9410ccc9.tar.xz
fix a memory leak in key.cpp
- add EC_KEY_free() in CKey::Reset() when pkey != NULL - init pkey with NULL in CKey constructor
Diffstat (limited to 'src/key.cpp')
-rw-r--r--src/key.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/key.cpp b/src/key.cpp
index 57ab842bc4..c943a38ea6 100644
--- a/src/key.cpp
+++ b/src/key.cpp
@@ -129,6 +129,8 @@ void CKey::SetCompressedPubKey()
void CKey::Reset()
{
fCompressedPubKey = false;
+ if (pkey != NULL)
+ EC_KEY_free(pkey);
pkey = EC_KEY_new_by_curve_name(NID_secp256k1);
if (pkey == NULL)
throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name failed");
@@ -137,6 +139,7 @@ void CKey::Reset()
CKey::CKey()
{
+ pkey = NULL;
Reset();
}