crypto: fix memory leak in ECDH::SetPrivateKey
authorKarl Skomski <karl@skomski.com>
Fri, 14 Aug 2015 12:30:52 +0000 (14:30 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Mon, 17 Aug 2015 19:23:13 +0000 (21:23 +0200)
PR-URL: https://github.com/nodejs/node/pull/2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
src/node_crypto.cc

index 04f5b0f..10223df 100644 (file)
@@ -4570,8 +4570,12 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo<Value>& args) {
   if (priv == nullptr)
     return env->ThrowError("Failed to convert Buffer to BN");
 
-  if (!EC_KEY_set_private_key(ecdh->key_, priv))
+  int result = EC_KEY_set_private_key(ecdh->key_, priv);
+  BN_free(priv);
+
+  if (!result) {
     return env->ThrowError("Failed to convert BN to a private key");
+  }
 }