summaryrefslogtreecommitdiff
path: root/plugins/rtti
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-16 14:12:10 +0200
committerMason Reed <mason@vector35.com>2025-05-16 14:12:10 +0200
commitc0ef307ab4241257ec86ece0351bf1604cb8f232 (patch)
tree5c805dfb711882f97df244e2cd66a747c031b578 /plugins/rtti
parentec3d735857e389a15ed081b081f76153f67c7579 (diff)
Fix crash with invalid vtable info when processing MSVC vftables
Found when a vtable is constrained to a size less than the base vft, indicating a bad base vft associating most likely. Fixes https://github.com/Vector35/binaryninja-api/issues/6840
Diffstat (limited to 'plugins/rtti')
-rw-r--r--plugins/rtti/microsoft.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/plugins/rtti/microsoft.cpp b/plugins/rtti/microsoft.cpp
index 9e26194a..b1b549a8 100644
--- a/plugins/rtti/microsoft.cpp
+++ b/plugins/rtti/microsoft.cpp
@@ -790,8 +790,8 @@ void MicrosoftRTTIProcessor::ProcessVFT()
}
vftFinished.insert(vftAddr);
- auto vftInfo = ProcessVFT(vftAddr, classInfo, baseClassInfo);
- classInfo.vft = vftInfo.value();
+ if (auto vftInfo = ProcessVFT(vftAddr, classInfo, baseClassInfo))
+ classInfo.vft = vftInfo.value();
};
size_t processedNum = 0;