[libcxxabi] r310226 - [demangler] Fix another oss-fuzz bug

Erik Pilkington via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 6 13:46:34 PDT 2017


Author: epilk
Date: Sun Aug  6 13:46:33 2017
New Revision: 310226

URL: http://llvm.org/viewvc/llvm-project?rev=310226&view=rev
Log:
[demangler] Fix another oss-fuzz bug

Modified:
    libcxxabi/trunk/src/cxa_demangle.cpp
    libcxxabi/trunk/test/test_demangle.pass.cpp

Modified: libcxxabi/trunk/src/cxa_demangle.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_demangle.cpp?rev=310226&r1=310225&r2=310226&view=diff
==============================================================================
--- libcxxabi/trunk/src/cxa_demangle.cpp (original)
+++ libcxxabi/trunk/src/cxa_demangle.cpp Sun Aug  6 13:46:33 2017
@@ -2896,7 +2896,7 @@ parse_new_expr(const char* first, const
                     return first;
                 init_list = db.popTrailingNodeArray(init_list_begin);
             }
-            if (*t != 'E')
+            if (*t != 'E' || db.names.empty())
                 return first;
             auto type = db.names.back();
             db.names.pop_back();

Modified: libcxxabi/trunk/test/test_demangle.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/test/test_demangle.pass.cpp?rev=310226&r1=310225&r2=310226&view=diff
==============================================================================
--- libcxxabi/trunk/test/test_demangle.pass.cpp (original)
+++ libcxxabi/trunk/test/test_demangle.pass.cpp Sun Aug  6 13:46:33 2017
@@ -29677,6 +29677,7 @@ const char* invalid_cases[] =
     "FSiIJEENT_IoE ",
     "ZTVSiIZTVSiIZTVSiIZTVSiINIJEET_T_T_T_T_ ",
     "_ZSiIJEvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvttvvvvvvET_v",
+    "Ana_T_E_T_IJEffffffffffffffersfffffrsrsffffffbgE",
 };
 
 const unsigned NI = sizeof(invalid_cases) / sizeof(invalid_cases[0]);




More information about the cfe-commits mailing list