Skip to content

Commit 105453b

Browse files
kvakiltargos
authored andcommitted
buffer: do not leak memory if buffer is too big
A recent pull request changed this method to throw when the buffer was too big, but this meant that the `free` finalizer would never get called, leading to a memory leak. A previous version of this diff included a test provoking this behavior with `v8.serialize`, but it unfortunately kept triggering the OOM killer, so it was removed. Refs: #40243 PR-URL: #43938 Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]>
1 parent 75e60cb commit 105453b

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

src/node_buffer.cc

+1
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ MaybeLocal<Object> New(Environment* env,
497497
if (length > kMaxLength) {
498498
Isolate* isolate(env->isolate());
499499
isolate->ThrowException(ERR_BUFFER_TOO_LARGE(isolate));
500+
free(data);
500501
return Local<Object>();
501502
}
502503
}

0 commit comments

Comments
 (0)