diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 0ab886ef6b..d46ed1e062 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -263,6 +263,7 @@ Handle SecureContext::Close(const Arguments& args) { if (sc->ctx_ != NULL) { SSL_CTX_free(sc->ctx_); + sc->ctx_ = NULL; return True(); } diff --git a/src/node_crypto.h b/src/node_crypto.h index 9f81be6f23..817724189f 100644 --- a/src/node_crypto.h +++ b/src/node_crypto.h @@ -40,7 +40,15 @@ class SecureContext : ObjectWrap { } ~SecureContext() { - // Free up + if (ctx_) { + SSL_CTX_free(ctx_); + ctx_ = NULL; + } + + if (ca_store_) { + X509_STORE_free(ca_store_); + ca_store_ = NULL; + } } private: