diff options
| author | Mason Reed <mason@vector35.com> | 2025-04-20 12:26:56 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2025-04-21 10:05:45 -0400 |
| commit | 67ae186d19ef585d17ee5085340e66b5b35011fd (patch) | |
| tree | 9ae477021bb4a1a47b4a9f25d907f13dd102af16 /plugins/rtti | |
| parent | 701c702aba757fbae54fc92e8e91e202cec92300 (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.cpp | 2 |
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; |
