From fe62fe5ebf9e57dcab76719556d228ab4de82c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 18 Apr 2016 20:08:50 -0700 Subject: [PATCH] Fixed dynamic buffer overrun. Issue #760. --- src/bgfx_p.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 1bb850e47..531fd38c0 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -2535,7 +2535,10 @@ namespace bgfx } uint32_t offset = (dvb.m_startVertex + _startVertex)*dvb.m_stride; - uint32_t size = bx::uint32_min(bx::uint32_satsub(dvb.m_size, _startVertex*dvb.m_stride), _mem->size); + uint32_t size = bx::uint32_min(offset + + bx::uint32_min(bx::uint32_satsub(dvb.m_size, _startVertex*dvb.m_stride), _mem->size) + , BGFX_CONFIG_DYNAMIC_VERTEX_BUFFER_SIZE) - offset + ; BX_CHECK(_mem->size <= size, "Truncating dynamic vertex buffer update (size %d, mem size %d)." , dvb.m_size , _mem->size