diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 04f5b0f8be..10223dfcfb 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -4570,8 +4570,12 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo& 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"); + } }