diff options
| author | Glenn Smith <glenn@vector35.com> | 2024-12-18 13:27:14 -0500 |
|---|---|---|
| committer | Glenn Smith <glenn@vector35.com> | 2024-12-18 13:27:14 -0500 |
| commit | 3bef4145c89405d3197a1b2a570c31a7bedc1431 (patch) | |
| tree | 4dc41b1c43923427b428a10ed86ea9f1c3849ffb /demangler | |
| parent | cfb83befbdeb6765fbb71d461495aa8abd66c40f (diff) | |
Fix crash when demangling certain names
Fixes #6261
Diffstat (limited to 'demangler')
| -rw-r--r-- | demangler/gnu3/demangle_gnu3.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
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) + ); + } } |
