From 67ae186d19ef585d17ee5085340e66b5b35011fd Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Sun, 20 Apr 2025 12:26:56 -0400 Subject: 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 --- plugins/rtti/itanium.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'plugins/rtti/itanium.cpp') 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; -- cgit v1.3.1