summaryrefslogtreecommitdiffstats
path: root/lib/ASTMatchers
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
commitce2bd42c852d229fa07ff64b85d0715cc7a24d33 (patch)
treeceb9e2b5af894464cfd86b11f4a6e467214d0415 /lib/ASTMatchers
parent38ed6a1f94bdcc560f4d1968e69052d0d9e29711 (diff)
[ASTMatchers] Fix use after free.
Found by asan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@305094 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ASTMatchers')
-rw-r--r--lib/ASTMatchers/Dynamic/Parser.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/ASTMatchers/Dynamic/Parser.cpp b/lib/ASTMatchers/Dynamic/Parser.cpp
index ff5c5fb657..f5bd296689 100644
--- a/lib/ASTMatchers/Dynamic/Parser.cpp
+++ b/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;