Skip to content

Commit 4221b1c

Browse files
fowlesBethGriggs
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 fa71073 commit 4221b1c

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
@@ -995,7 +995,10 @@ inline AllocatedBuffer::~AllocatedBuffer() {
995995

996996
inline void AllocatedBuffer::clear() {
997997
uv_buf_t buf = release();
998-
env_->Free(buf.base, buf.len);
998+
if (buf.base != nullptr) {
999+
CHECK_NOT_NULL(env_);
1000+
env_->Free(buf.base, buf.len);
1001+
}
9991002
}
10001003

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

0 commit comments

Comments
 (0)