Skip to content

Commit 0f3f2c9

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 f03c774 commit 0f3f2c9

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)