From a3939bdec15f9299ae9a681255fa93c47113870a Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 24 Jan 2023 18:38:13 -0700 Subject: Fix UAF on C++ BinaryView plugin init, improve demangler and BinaryView APIs --- type.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'type.cpp') diff --git a/type.cpp b/type.cpp index a2e92985..1c7b425e 100644 --- a/type.cpp +++ b/type.cpp @@ -794,7 +794,8 @@ Ref Type::EnumerationType(Architecture* arch, Enumeration* enm, size_t wid BNBoolWithConfidence isSignedConf; isSignedConf.value = isSigned.GetValue(); isSignedConf.confidence = isSigned.GetConfidence(); - return new Type(BNCreateEnumerationType(arch->GetObject(), enm->GetObject(), width, &isSignedConf)); + return new Type( + BNCreateEnumerationType(arch ? arch->GetObject() : nullptr, enm->GetObject(), width, &isSignedConf)); } @@ -1629,8 +1630,8 @@ TypeBuilder TypeBuilder::EnumerationType( BNBoolWithConfidence isSignedConf; isSignedConf.value = isSigned.GetValue(); isSignedConf.confidence = isSigned.GetConfidence(); - return TypeBuilder( - BNCreateEnumerationTypeBuilderWithBuilder(arch->GetObject(), enm->GetObject(), width, &isSignedConf)); + return TypeBuilder(BNCreateEnumerationTypeBuilderWithBuilder( + arch ? arch->GetObject() : nullptr, enm->GetObject(), width, &isSignedConf)); } TypeBuilder TypeBuilder::PointerType(Architecture* arch, const Confidence>& type, -- cgit v1.3.1