Skip to content

Commit cf16cb7

Browse files
fowlestargos
authored andcommitted
src: fix null deref in AllocatedBuffer::clear
An empty buffer can have a null environment. Previously, we were getting away with with this, but -fsanitize=null in clang caught it. PR-URL: #32892 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
1 parent 0bae243 commit cf16cb7

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/env-inl.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,10 @@ inline AllocatedBuffer::~AllocatedBuffer() {
10191019

10201020
inline void AllocatedBuffer::clear() {
10211021
uv_buf_t buf = release();
1022-
env_->Free(buf.base, buf.len);
1022+
if (buf.base != nullptr) {
1023+
CHECK_NOT_NULL(env_);
1024+
env_->Free(buf.base, buf.len);
1025+
}
10231026
}
10241027

10251028
// It's a bit awkward to define this Buffer::New() overload here, but it

0 commit comments

Comments
 (0)