From 24278dafdcdee229fd229bd5a9ee8aeac37e9353 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 9 Dec 2017 20:34:07 +0100 Subject: [PATCH] Core/MemoryStream: Fix assertion trigger when writing zero-sized block --- src/Nazara/Core/MemoryStream.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Nazara/Core/MemoryStream.cpp b/src/Nazara/Core/MemoryStream.cpp index fb5d8ca93..31a9cdf6a 100644 --- a/src/Nazara/Core/MemoryStream.cpp +++ b/src/Nazara/Core/MemoryStream.cpp @@ -130,15 +130,19 @@ namespace Nz std::size_t MemoryStream::WriteBlock(const void* buffer, std::size_t size) { - std::size_t endPos = static_cast(m_pos + size); - if (endPos > m_buffer->GetSize()) - m_buffer->Resize(endPos); + if (size > 0) + { + std::size_t endPos = static_cast(m_pos + size); + if (endPos > m_buffer->GetSize()) + m_buffer->Resize(endPos); - NazaraAssert(buffer, "Invalid buffer"); + NazaraAssert(buffer, "Invalid buffer"); - std::memcpy(m_buffer->GetBuffer() + m_pos, buffer, size); + std::memcpy(m_buffer->GetBuffer() + m_pos, buffer, size); + + m_pos = endPos; + } - m_pos = endPos; return size; } }