diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 665010bd1ba..0344d207a40 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_); }