summaryrefslogtreecommitdiff
path: root/plugins/rtti
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2026-04-09 12:00:07 -0700
committerMason Reed <35282038+emesare@users.noreply.github.com>2026-04-13 08:28:22 -0700
commit745c0b3b806b7e44aba36cf3a8564dfa0631dc8f (patch)
tree467c1cb7a6bad401ad9d2c2ece8985491e469144 /plugins/rtti
parent24eabc032f6450001bd799b5ec2dc368467b773a (diff)
[RTTI] Fix Itanium RTTI scan failing to symbolize objects with extern typeinfo
The issue stems from the gnu3 demangler changing in https://github.com/Vector35/binaryninja-api/commit/260ca61d94134b6743807e29f64b5ce4f6918d73 Fixes https://github.com/Vector35/binaryninja-api/issues/8080
Diffstat (limited to 'plugins/rtti')
-rw-r--r--plugins/rtti/itanium.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/plugins/rtti/itanium.cpp b/plugins/rtti/itanium.cpp
index 69501021..c805343d 100644
--- a/plugins/rtti/itanium.cpp
+++ b/plugins/rtti/itanium.cpp
@@ -446,9 +446,11 @@ std::optional<ClassInfo> ItaniumRTTIProcessor::ProcessRTTI(uint64_t objectAddr)
return std::nullopt;
auto symName = sym->GetShortName();
// Remove type info prefix.
- if (symName.rfind("_typeinfo_for_", 0) != 0)
- return std::nullopt;
- return symName.substr(14);
+ if (symName.rfind("_typeinfo_for_", 0) == 0)
+ return symName.substr(14);
+ if (symName.rfind("typeinfo_for_", 0) == 0)
+ return symName.substr(13);
+ return std::nullopt;
};
if (typeInfoVariant == TIVSIClass)