]> granicus.if.org Git - llvm/commitdiff
llvm-undname: Fix an assert-on-invalid, found by oss-fuzz
authorNico Weber <nicolasweber@gmx.de>
Mon, 22 Apr 2019 15:05:18 +0000 (15:05 +0000)
committerNico Weber <nicolasweber@gmx.de>
Mon, 22 Apr 2019 15:05:18 +0000 (15:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358891 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Demangle/MicrosoftDemangle.cpp
test/Demangle/invalid-manglings.test

index f9400b075e44b1c2c33b16bbeee82f86691ce461..beb51695fc1fae9ba5b05b7c81feb25c4d9e235e 100644 (file)
@@ -1040,7 +1040,7 @@ wchar_t Demangler::demangleWcharLiteral(StringView &MangledName) {
   uint8_t C1, C2;
 
   C1 = demangleCharLiteral(MangledName);
-  if (Error)
+  if (Error || MangledName.empty())
     goto WCharLiteralError;
   C2 = demangleCharLiteral(MangledName);
   if (Error)
index fb66c2b1cda2206c919c1042a5d11b1728d40bd3..d64ec4f14d48efcc9b658bcdab171419d8c6bde9 100644 (file)
 ; CHECK-EMPTY:
 ; CHECK-NEXT: ??_C@_0601234567@abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyz
 ; CHECK-NEXT: error: Invalid mangled name
+
+??_C@_12@?z
+; CHECK-EMPTY:
+; CHECK-NEXT: ??_C@_12@?z
+; CHECK-NEXT: error: Invalid mangled name