Quellcode durchsuchen

Merge pull request #1787 from actboy168/patch-1

Fixes CommandBuffer overflow check
Бранимир Караџић vor 6 Jahren
Ursprung
Commit
6aa3768ffa
1 geänderte Dateien mit 3 neuen und 3 gelöschten Zeilen
  1. 3 3
      src/bgfx_p.h

+ 3 - 3
src/bgfx_p.h

@@ -815,7 +815,7 @@ namespace bgfx
 		void write(const void* _data, uint32_t _size)
 		{
 			BX_CHECK(m_size == BGFX_CONFIG_MAX_COMMAND_BUFFER_SIZE, "Called write outside start/finish?");
-			BX_CHECK(m_pos < m_size, "CommandBuffer::write error (pos: %d, size: %d).", m_pos, m_size);
+			BX_CHECK(m_pos + _size < m_size, "CommandBuffer::write error (pos: %d-%d, size: %d).", m_pos, m_pos + _size, m_size);
 			bx::memCopy(&m_buffer[m_pos], _data, _size);
 			m_pos += _size;
 		}
@@ -829,7 +829,7 @@ namespace bgfx
 
 		void read(void* _data, uint32_t _size)
 		{
-			BX_CHECK(m_pos < m_size, "CommandBuffer::read error (pos: %d, size: %d).", m_pos, m_size);
+			BX_CHECK(m_pos + _size < m_size, "CommandBuffer::read error (pos: %d-%d, size: %d).", m_pos, m_pos + _size, m_size);
 			bx::memCopy(_data, &m_buffer[m_pos], _size);
 			m_pos += _size;
 		}
@@ -843,7 +843,7 @@ namespace bgfx
 
 		const uint8_t* skip(uint32_t _size)
 		{
-			BX_CHECK(m_pos < m_size, "CommandBuffer::skip error (pos: %d, size: %d).", m_pos, m_size);
+			BX_CHECK(m_pos + _size < m_size, "CommandBuffer::skip error (pos: %d-%d, size: %d).", m_pos, m_pos + _size, m_size);
 			const uint8_t* result = &m_buffer[m_pos];
 			m_pos += _size;
 			return result;