diff --git a/source/ByteBuffer.cpp b/source/ByteBuffer.cpp index c1ff4c6fd..623b865f4 100644 --- a/source/ByteBuffer.cpp +++ b/source/ByteBuffer.cpp @@ -355,12 +355,15 @@ bool cByteBuffer::ReadBuf(void * a_Buffer, int a_Count) char * Dst = (char *)a_Buffer; // So that we can do byte math int BytesToEndOfBuffer = m_BufferSize - m_ReadPos; ASSERT(BytesToEndOfBuffer >= 0); // Sanity check - if ((BytesToEndOfBuffer > 0) && (BytesToEndOfBuffer < a_Count)) + if (BytesToEndOfBuffer < a_Count) { // Reading across the ringbuffer end, read the first part and adjust parameters: - memcpy(Dst, m_Buffer + m_ReadPos, BytesToEndOfBuffer); - Dst += BytesToEndOfBuffer; - a_Count -= BytesToEndOfBuffer; + if (BytesToEndOfBuffer > 0) + { + memcpy(Dst, m_Buffer + m_ReadPos, BytesToEndOfBuffer); + Dst += BytesToEndOfBuffer; + a_Count -= BytesToEndOfBuffer; + } m_ReadPos = 0; }