From ec548734cae52713432addacc6787b87f5c5051e Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 16 Aug 2013 16:42:50 +0200 Subject: [PATCH] crypto: fix memory leak in randomBytes() error path --- src/node_crypto.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 665010b..0344d20 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -3422,7 +3422,7 @@ void RandomBytesCheck(RandomBytesRequest* req, Local argv[2]) { if (req->error_) { char errmsg[256] = "Operation not supported"; - if (req->error_ != (unsigned long) -1) + if (req->error_ != static_cast(-1)) ERR_error_string_n(req->error_, errmsg, sizeof errmsg); argv[0] = Exception::Error(OneByteString(node_isolate, errmsg)); @@ -3430,7 +3430,9 @@ void RandomBytesCheck(RandomBytesRequest* req, Local argv[2]) { } else { argv[0] = Null(node_isolate); argv[1] = Buffer::Use(req->data_, req->size_); + req->data_ = NULL; } + free(req->data_); } -- 2.7.4