Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 96882e1

Browse filesBrowse files
bnoordhuisevanlucas
authored andcommitted
src: fix handle leak in Buffer::New()
Fix handle leaks in Buffer::New() and Buffer::Copy() by creating the handle scope before looking up the env with Environment::GetCurrent(). Environment::GetCurrent() calls v8::Isolate::GetCurrentContext(), which creates a handle in the current scope, i.e., the scope created by the caller of Buffer::New() or Buffer::Copy(). PR-URL: #7711 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
1 parent 9847f84 commit 96882e1
Copy full SHA for 96882e1

File tree

Expand file treeCollapse file tree

1 file changed

+3
-3
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+3
-3
lines changed
Open diff view settings
Collapse file

‎src/node_buffer.cc‎

Copy file name to clipboardExpand all lines: src/node_buffer.cc
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,8 @@ MaybeLocal<Object> New(Environment* env, size_t length) {
320320

321321

322322
MaybeLocal<Object> Copy(Isolate* isolate, const char* data, size_t length) {
323+
EscapableHandleScope handle_scope(isolate);
323324
Environment* env = Environment::GetCurrent(isolate);
324-
EscapableHandleScope handle_scope(env->isolate());
325325
Local<Object> obj;
326326
if (Buffer::Copy(env, data, length).ToLocal(&obj))
327327
return handle_scope.Escape(obj);
@@ -370,8 +370,8 @@ MaybeLocal<Object> New(Isolate* isolate,
370370
size_t length,
371371
FreeCallback callback,
372372
void* hint) {
373+
EscapableHandleScope handle_scope(isolate);
373374
Environment* env = Environment::GetCurrent(isolate);
374-
EscapableHandleScope handle_scope(env->isolate());
375375
Local<Object> obj;
376376
if (Buffer::New(env, data, length, callback, hint).ToLocal(&obj))
377377
return handle_scope.Escape(obj);
@@ -409,8 +409,8 @@ MaybeLocal<Object> New(Environment* env,
409409

410410

411411
MaybeLocal<Object> New(Isolate* isolate, char* data, size_t length) {
412+
EscapableHandleScope handle_scope(isolate);
412413
Environment* env = Environment::GetCurrent(isolate);
413-
EscapableHandleScope handle_scope(env->isolate());
414414
Local<Object> obj;
415415
if (Buffer::New(env, data, length).ToLocal(&obj))
416416
return handle_scope.Escape(obj);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.