Browse Source

src: fix handle leak in BuildStatsObject()

Create a handle scope before performing a check that creates a handle,
otherwise the handle is leaked into the handle scope of the caller.

PR-URL: https://github.com/nodejs/node/pull/7711
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
v7.x
Ben Noordhuis 9 years ago
parent
commit
c354b241a7
  1. 4
      src/node_file.cc

4
src/node_file.cc

@ -420,11 +420,11 @@ static void Close(const FunctionCallbackInfo<Value>& args) {
Local<Value> BuildStatsObject(Environment* env, const uv_stat_t* s) { Local<Value> BuildStatsObject(Environment* env, const uv_stat_t* s) {
EscapableHandleScope handle_scope(env->isolate());
// If you hit this assertion, you forgot to enter the v8::Context first. // If you hit this assertion, you forgot to enter the v8::Context first.
CHECK_EQ(env->context(), env->isolate()->GetCurrentContext()); CHECK_EQ(env->context(), env->isolate()->GetCurrentContext());
EscapableHandleScope handle_scope(env->isolate());
// The code below is very nasty-looking but it prevents a segmentation fault // The code below is very nasty-looking but it prevents a segmentation fault
// when people run JS code like the snippet below. It's apparently more // when people run JS code like the snippet below. It's apparently more
// common than you would expect, several people have reported this crash... // common than you would expect, several people have reported this crash...

Loading…
Cancel
Save