summaryrefslogtreecommitdiffstats
path: root/clang/lib/ASTMatchers/Dynamic/Parser.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2017-06-09 17:55:42 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2017-06-09 17:55:42 +0000
commit96a0b3fc6c86e2a5dbc54e610ea7ee3a7df51281 (patch)
tree76e5825cce56d3ef4a96d40733873b790f494ceb /clang/lib/ASTMatchers/Dynamic/Parser.cpp
parent7e62cd17d6813d66e46e7177574be81c665d8eab (diff)
downloadbcm5719-llvm-96a0b3fc6c86e2a5dbc54e610ea7ee3a7df51281.tar.gz
bcm5719-llvm-96a0b3fc6c86e2a5dbc54e610ea7ee3a7df51281.zip
[ASTMatchers] Fix use after free.
Found by asan. llvm-svn: 305094
Diffstat (limited to 'clang/lib/ASTMatchers/Dynamic/Parser.cpp')
-rw-r--r--clang/lib/ASTMatchers/Dynamic/Parser.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
index ff5c5fb657c..f5bd2966899 100644
--- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
+++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -206,7 +206,8 @@ private:
if (isFloatingLiteral) {
char *end;
errno = 0;
- double doubleValue = strtod(Result->Text.str().c_str(), &end);
+ std::string Text = Result->Text.str();
+ double doubleValue = strtod(Text.c_str(), &end);
if (*end == 0 && errno == 0) {
Result->Kind = TokenInfo::TK_Literal;
Result->Value = doubleValue;
OpenPOWER on IntegriCloud