From ae7027a36f47b15dd2126c0e3233c742f0c9d331 Mon Sep 17 00:00:00 2001 From: Osyotr Date: Sun, 24 Dec 2023 18:57:51 +0300 Subject: [PATCH] Fix invalid memory usage in MemWriter Case 1: `m_Data.size() == 0 && m_Pos == 0` => `resize` is not called. Case 2: `size == 0` => access to `m_Data[m_Data.size()]` Signed-off-by: Osyotr --- coding/writer.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/coding/writer.hpp b/coding/writer.hpp index d7a593c87a..45101d1e60 100644 --- a/coding/writer.hpp +++ b/coding/writer.hpp @@ -61,8 +61,11 @@ public: void Write(void const * p, size_t size) override { + if (size == 0) + return; + auto freeSize = static_cast(m_Data.size() - m_Pos); - if (freeSize < 0) + if (freeSize <= 0) { m_Data.resize(static_cast(m_Pos + size)); freeSize = size;