From 90cc7640fb7441c92d5da40648dbf4fa031e7ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Tue, 6 Dec 2016 14:47:27 -0800 Subject: [PATCH] Fixed out of bound access when running out of matrix cache. --- 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 8a0529b20..50a98f5cc 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -907,7 +907,10 @@ namespace bgfx uint32_t num = *_num; BX_WARN(m_num+num < BGFX_CONFIG_MAX_MATRIX_CACHE, "Matrix cache overflow. %d (max: %d)", m_num+num, BGFX_CONFIG_MAX_MATRIX_CACHE); num = bx::uint32_min(num, BGFX_CONFIG_MAX_MATRIX_CACHE-m_num); - uint32_t first = m_num; + uint32_t first = m_num < BGFX_CONFIG_MAX_MATRIX_CACHE + ? m_num + : BGFX_CONFIG_MAX_MATRIX_CACHE - 1 + ; m_num += num; *_num = (uint16_t)num; return first;