Skip to content

Commit f2d8f09

Browse files
committedApr 11, 2019
llvm-undname: Fix crash on invalid name in a template parameter pointer to member arg
Found by oss-fuzz. llvm-svn: 358234
1 parent 57c3d4b commit f2d8f09

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed
 

Diff for: ‎llvm/lib/Demangle/MicrosoftDemangle.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -2139,6 +2139,8 @@ Demangler::demangleTemplateParameterList(StringView &MangledName) {
21392139
SymbolNode *S = nullptr;
21402140
if (MangledName.startsWith('?')) {
21412141
S = parse(MangledName);
2142+
if (Error)
2143+
return nullptr;
21422144
memorizeIdentifier(S->Name->getUnqualifiedIdentifier());
21432145
}
21442146

Diff for: ‎llvm/test/Demangle/invalid-manglings.test

+5
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,8 @@
9494
; CHECK-EMPTY:
9595
; CHECK-NEXT: ??8@8
9696
; CHECK-NEXT: error: Invalid mangled name
97+
98+
?B@?$?K$H?
99+
; CHECK-EMPTY:
100+
; CHECK-NEXT: ?B@?$?K$H?
101+
; CHECK-NEXT: error: Invalid mangled name

0 commit comments

Comments
 (0)
Please sign in to comment.