diff options
| author | Erik Pilkington <erik.pilkington@gmail.com> | 2017-05-28 23:24:52 +0000 |
|---|---|---|
| committer | Erik Pilkington <erik.pilkington@gmail.com> | 2017-05-28 23:24:52 +0000 |
| commit | de83eea5769c218a90751409b310f42c261e61c0 (patch) | |
| tree | feb4ef696dfe5791c02af116bd7e91761cb2506f /llvm/lib | |
| parent | a34ea7583fb292454ba3808b62a06da07c609fdb (diff) | |
| download | bcm5719-llvm-de83eea5769c218a90751409b310f42c261e61c0.tar.gz bcm5719-llvm-de83eea5769c218a90751409b310f42c261e61c0.zip | |
[ItaniumDemangle] Fix a exponential string copying bug
This is a port of libcxxabi's r304113.
llvm-svn: 304114
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Demangle/ItaniumDemangle.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Demangle/ItaniumDemangle.cpp b/llvm/lib/Demangle/ItaniumDemangle.cpp index 03d11a703ab..34f4017d982 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); } |

