From 3bef4145c89405d3197a1b2a570c31a7bedc1431 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Wed, 18 Dec 2024 13:27:14 -0500 Subject: Fix crash when demangling certain names Fixes #6261 --- demangler/gnu3/demangle_gnu3.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'demangler') diff --git a/demangler/gnu3/demangle_gnu3.cpp b/demangler/gnu3/demangle_gnu3.cpp index 26dc99fe..bd96b3f7 100644 --- a/demangler/gnu3/demangle_gnu3.cpp +++ b/demangler/gnu3/demangle_gnu3.cpp @@ -88,9 +88,14 @@ static void ExtendTypeName(TypeBuilder& type, const string& extend) qn.back() += extend; else qn.push_back(extend); - type.SetNamedTypeReference( - NamedTypeReference::GenerateAutoDemangledTypeReference(type.GetNamedTypeReference()->GetTypeReferenceClass(), qn) - ); + + // This type might not be an NTR (Vector35/binaryninja-api#6261) + if (type.GetClass() == NamedTypeReferenceClass) + { + type.SetNamedTypeReference( + NamedTypeReference::GenerateAutoDemangledTypeReference(type.GetNamedTypeReference()->GetTypeReferenceClass(), qn) + ); + } } -- cgit v1.3.1