[llvm] r357649 - llvm-undname: Fix a crash-on-invalid

Nico Weber via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 3 16:27:19 PDT 2019


Author: nico
Date: Wed Apr  3 16:27:18 2019
New Revision: 357649

URL: http://llvm.org/viewvc/llvm-project?rev=357649&view=rev
Log:
llvm-undname: Fix a crash-on-invalid

Found by oss-fuzz, fixes issue 13260 on oss-fuzz.

Differential Revision: https://reviews.llvm.org/D60207

Modified:
    llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp
    llvm/trunk/test/Demangle/invalid-manglings.test

Modified: llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp?rev=357649&r1=357648&r2=357649&view=diff
==============================================================================
--- llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp (original)
+++ llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp Wed Apr  3 16:27:18 2019
@@ -1949,7 +1949,7 @@ ArrayTypeNode *Demangler::demangleArrayT
   for (uint64_t I = 0; I < Rank; ++I) {
     uint64_t D = 0;
     std::tie(D, IsNegative) = demangleNumber(MangledName);
-    if (IsNegative) {
+    if (Error || IsNegative) {
       Error = true;
       return nullptr;
     }

Modified: llvm/trunk/test/Demangle/invalid-manglings.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Demangle/invalid-manglings.test?rev=357649&r1=357648&r2=357649&view=diff
==============================================================================
--- llvm/trunk/test/Demangle/invalid-manglings.test (original)
+++ llvm/trunk/test/Demangle/invalid-manglings.test Wed Apr  3 16:27:18 2019
@@ -24,3 +24,8 @@
 ; CHECK-EMPTY:
 ; CHECK-NEXT: ??0@
 ; CHECK-NEXT: error: Invalid mangled name
+
+? @@   YC@
+; CHECK-EMPTY:
+; CHECK-NEXT: ? @@   YC@
+; CHECK-NEXT: error: Invalid mangled name




More information about the llvm-commits mailing list