]> granicus.if.org Git - clang/commitdiff
[ASTMatchers] Fix use after free.
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 9 Jun 2017 17:55:42 +0000 (17:55 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 9 Jun 2017 17:55:42 +0000 (17:55 +0000)
Found by asan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@305094 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ASTMatchers/Dynamic/Parser.cpp

index ff5c5fb657c31f4176eb343add6c8f34753b122e..f5bd296689951d817afcc64459295078df4e999b 100644 (file)
@@ -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;