aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Demangle/ItaniumDemangle.cpp
diff options
context:
space:
mode:
authorErik Pilkington <erik.pilkington@gmail.com>2017-05-28 23:24:52 +0000
committerErik Pilkington <erik.pilkington@gmail.com>2017-05-28 23:24:52 +0000
commitde83eea5769c218a90751409b310f42c261e61c0 (patch)
treefeb4ef696dfe5791c02af116bd7e91761cb2506f /llvm/lib/Demangle/ItaniumDemangle.cpp
parenta34ea7583fb292454ba3808b62a06da07c609fdb (diff)
downloadllvm-de83eea5769c218a90751409b310f42c261e61c0.zip
llvm-de83eea5769c218a90751409b310f42c261e61c0.tar.gz
llvm-de83eea5769c218a90751409b310f42c261e61c0.tar.bz2
[ItaniumDemangle] Fix a exponential string copying bug
This is a port of libcxxabi's r304113. llvm-svn: 304114
Diffstat (limited to 'llvm/lib/Demangle/ItaniumDemangle.cpp')
-rw-r--r--llvm/lib/Demangle/ItaniumDemangle.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Demangle/ItaniumDemangle.cpp b/llvm/lib/Demangle/ItaniumDemangle.cpp
index 03d11a7..34f4017 100644
--- a/llvm/lib/Demangle/ItaniumDemangle.cpp
+++ b/llvm/lib/Demangle/ItaniumDemangle.cpp
@@ -2525,6 +2525,9 @@ static std::string base_name(std::string &s) {
++p0;
break;
}
+ if (!isalpha(*p0) && !isdigit(*p0) && *p0 != '_') {
+ return std::string();
+ }
}
return std::string(p0, pe);
}