summaryrefslogtreecommitdiff
path: root/plugins/rtti
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-04-20 12:26:56 -0400
committerPeter LaFosse <peter@vector35.com>2025-04-21 10:05:45 -0400
commit67ae186d19ef585d17ee5085340e66b5b35011fd (patch)
tree9ae477021bb4a1a47b4a9f25d907f13dd102af16 /plugins/rtti
parent701c702aba757fbae54fc92e8e91e202cec92300 (diff)
Fix Itanium VFT analysis crashing when possible VFT at section start boundary
The vft will have a few fields above it, we did not verify that when we read those fields that they were readable. Fixes https://github.com/Vector35/binaryninja-api/issues/6694
Diffstat (limited to 'plugins/rtti')
-rw-r--r--plugins/rtti/itanium.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/plugins/rtti/itanium.cpp b/plugins/rtti/itanium.cpp
index 95122fad..cc632045 100644
--- a/plugins/rtti/itanium.cpp
+++ b/plugins/rtti/itanium.cpp
@@ -768,6 +768,8 @@ void ItaniumRTTIProcessor::ProcessVFT()
continue;
// Verify that there is two field sized values above the type info pointer
optReader.Seek(ref - ArchFieldSize(m_view) * 2);
+ if (!m_view->IsValidOffset(optReader.GetOffset()))
+ continue;
auto beforeTypeInfoRef = optReader.ReadPointer();
if (m_view->IsValidOffset(beforeTypeInfoRef))
continue;