From 49f8f01f2b3786a5c3204e6ed362539f78996403 Mon Sep 17 00:00:00 2001 From: Matt Kulukundis Date: Thu, 16 Apr 2020 19:30:08 -0400 Subject: [PATCH] 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. --- src/env-inl.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/env-inl.h b/src/env-inl.h index f681a0bf1d8dcc..cab967f10db530 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -1003,7 +1003,10 @@ inline AllocatedBuffer::~AllocatedBuffer() { inline void AllocatedBuffer::clear() { uv_buf_t buf = release(); - env_->Free(buf.base, buf.len); + if (buf.base != nullptr) { + CHECK_NOT_NULL(env_); + env_->Free(buf.base, buf.len); + } } // It's a bit awkward to define this Buffer::New() overload here, but it