Filter out '`' in mangled strings and reject them as invalid if found.

llvm-svn: 184656
This commit is contained in:
Howard Hinnant 2013-06-23 03:36:38 +00:00
parent 58032cb029
commit ae10f9d45e
2 changed files with 2 additions and 1 deletions

View File

@ -4382,7 +4382,7 @@ template <class C>
void
demangle(const char* first, const char* last, C& db, int& status)
{
if (first >= last)
if (first >= last || std::find(first, last, '`') != last)
{
status = invalid_mangled_name;
return;

View File

@ -29593,6 +29593,7 @@ const char* invalid_cases[] =
"Agentt",
"NSoERj5E=Y1[uM:ga",
"Aon_PmKVPDk7?fg4XP5smMUL6;<WsI_mgbf23cCgsHbT<l8EE\0uVRkNOoXDrgdA4[8IU>Vl<>IL8ayHpiVDDDXTY;^o9;i",
"_ZN8Blizza`d6Memory12voidp_returncvPT_IcEEv",
};
const unsigned NI = sizeof(invalid_cases) / sizeof(invalid_cases[0]);