]> granicus.if.org Git - clang/commitdiff
Fix use-after-free in PPCallbacksTest detected by ASan bootstrap bot
authorAlexey Samsonov <samsonov@google.com>
Mon, 14 Oct 2013 07:13:59 +0000 (07:13 +0000)
committerAlexey Samsonov <samsonov@google.com>
Mon, 14 Oct 2013 07:13:59 +0000 (07:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192572 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/Lex/PPCallbacksTest.cpp

index 8c6df1d00af329014f1a5808a0cd560089db2e4d..fd407b52c6ebed7a7314446ab2dbe1eaa6e512b0 100644 (file)
@@ -85,7 +85,7 @@ public:
 class PragmaOpenCLExtensionCallbacks : public PPCallbacks {
 public:
   typedef struct {
-    StringRef Name;
+    SmallString<16> Name;
     unsigned State;
   } CallbackParameters;
 
@@ -95,13 +95,13 @@ public:
     clang::SourceLocation NameLoc, const clang::IdentifierInfo *Name,
     clang::SourceLocation StateLoc, unsigned State) {
       this->NameLoc = NameLoc;
-      this->Name = Name->getName().str();
+      this->Name = Name->getName();
       this->StateLoc = StateLoc;
       this->State = State;
   };
 
   SourceLocation NameLoc;
-  StringRef Name;
+  SmallString<16> Name;
   SourceLocation StateLoc;
   unsigned State;
 };
@@ -230,7 +230,7 @@ protected:
     }
 
     PragmaOpenCLExtensionCallbacks::CallbackParameters RetVal = {
-      Callbacks->Name.str(),
+      Callbacks->Name,
       Callbacks->State
     };
     return RetVal;