summaryrefslogtreecommitdiff
path: root/plugins/rtti
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-17 12:57:14 +0200
committerMason Reed <mason@vector35.com>2025-05-17 12:57:14 +0200
commit42886bea7384f0163c43bacc5afa7b9ffe6a589c (patch)
tree2fa87e1808821d73d7f00a2ea3f234c5039bfbd8 /plugins/rtti
parentc2f94700a0cc535860934fae01d7ecb81956bcec (diff)
[RTTI] Fix crash with zeroed base class descriptor
Fixes https://github.com/Vector35/binaryninja-api/issues/6837
Diffstat (limited to 'plugins/rtti')
-rw-r--r--plugins/rtti/microsoft.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/plugins/rtti/microsoft.cpp b/plugins/rtti/microsoft.cpp
index b1b549a8..1299170c 100644
--- a/plugins/rtti/microsoft.cpp
+++ b/plugins/rtti/microsoft.cpp
@@ -359,6 +359,12 @@ std::vector<BaseClassInfo> MicrosoftRTTIProcessor::ProcessClassHierarchyDescript
auto baseClassDesc = BaseClassDescriptor(m_view, baseClassDescAddr);
auto baseClassTypeDescAddr = resolveAddr(baseClassDesc.pTypeDescriptor);
+ if (baseClassTypeDescAddr == 0)
+ {
+ // Fixes issue https://github.com/Vector35/binaryninja-api/issues/6837
+ m_logger->LogWarn("Skipping BaseClassDescriptor with null pTypeDescriptor %llx", baseClassDescAddr);
+ continue;
+ }
auto baseClassTypeDesc = TypeDescriptor(m_view, baseClassTypeDescAddr);
auto baseClassName = DemangleNameMS(m_view, allowMangledClassNames, baseClassTypeDesc.name);
if (!baseClassName.has_value())