From f8d3c5eab487e06ad4b944cc92f689e2e367107d Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Fri, 4 Jul 2025 13:31:04 -0400 Subject: [RTTI] Fix vtables straddling section boundaries causing a OOB exception This fixes an issue with certain shared cache binaries where a VFT was placed at the tail of the const data section --- plugins/rtti/microsoft.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'plugins/rtti/microsoft.cpp') diff --git a/plugins/rtti/microsoft.cpp b/plugins/rtti/microsoft.cpp index 55d1955f..de91b16a 100644 --- a/plugins/rtti/microsoft.cpp +++ b/plugins/rtti/microsoft.cpp @@ -487,6 +487,9 @@ std::optional MicrosoftRTTIProcessor::ProcessVFT(uint6 std::vector>>> virtualFunctions = {}; while (true) { + uint64_t readOffset = reader.GetOffset(); + if (!m_view->IsValidOffset(readOffset)) + break; uint64_t vFuncAddr = reader.ReadPointer(); auto funcs = m_view->GetAnalysisFunctionsForAddress(vFuncAddr); if (funcs.empty()) -- cgit v1.3.1