summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2013-06-20 01:55:07 +0000
committerHoward Hinnant <hhinnant@apple.com>2013-06-20 01:55:07 +0000
commit763e591461c675dd785ba2311f9a2f1d5516a1af (patch)
treedda0eb0532f847080f7cd2103fbdf5248e9f995d /libcxxabi/src
parentf8cab73e999266339ea6fcd78448ace9f376dc8e (diff)
downloadbcm5719-llvm-763e591461c675dd785ba2311f9a2f1d5516a1af.tar.gz
bcm5719-llvm-763e591461c675dd785ba2311f9a2f1d5516a1af.zip
Protect against invalid mangled names. Add test suite for invalid mangled names.
llvm-svn: 184394
Diffstat (limited to 'libcxxabi/src')
-rw-r--r--libcxxabi/src/cxa_demangle.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxxabi/src/cxa_demangle.cpp b/libcxxabi/src/cxa_demangle.cpp
index 081892f63b8..16c142e3244 100644
--- a/libcxxabi/src/cxa_demangle.cpp
+++ b/libcxxabi/src/cxa_demangle.cpp
@@ -3798,7 +3798,7 @@ parse_name(const char* first, const char* last, C& db)
else
{ // try <substitution> <template-args>
t1 = parse_substitution(t0, last, db);
- if (t1 != last && *t1 == 'I')
+ if (t1 != t0 && t1 != last && *t1 == 'I')
{
t0 = t1;
t1 = parse_template_args(t0, last, db);
OpenPOWER on IntegriCloud