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]); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits