From 6c58ba353caced302f1e4e23eee0de6d59a527a2 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 2 Jan 2023 18:56:25 -0800 Subject: [PATCH] IndexGenerator: Add assertion for overflow in GetRemainingIndices This assertion is currently triggered by Pocoyo Racing (https://bugs.dolphin-emu.org/issues/13136). --- Source/Core/VideoCommon/IndexGenerator.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/IndexGenerator.cpp b/Source/Core/VideoCommon/IndexGenerator.cpp index 5d86561ffd..04068e88ec 100644 --- a/Source/Core/VideoCommon/IndexGenerator.cpp +++ b/Source/Core/VideoCommon/IndexGenerator.cpp @@ -334,6 +334,15 @@ u32 IndexGenerator::GetRemainingIndices(OpcodeDecoder::Primitive primitive) cons max_index >>= 2; // -1 is reserved for primitive restart + max_index = max_index - 1; - return max_index - m_base_index - 1; + if (m_base_index > max_index) [[unlikely]] + { + PanicAlertFmt("GetRemainingIndices would overflow; we've already written too many indices? " + "base index {} > max index {}", + m_base_index, max_index); + return 0; + } + + return max_index - m_base_index; }