[clang-tools-extra] r347563 - [clangd] Fix use-after-free with expected types in indexing

Ilya Biryukov via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 26 07:52:16 PST 2018


Author: ibiryukov
Date: Mon Nov 26 07:52:16 2018
New Revision: 347563

URL: http://llvm.org/viewvc/llvm-project?rev=347563&view=rev
Log:
[clangd] Fix use-after-free with expected types in indexing

Modified:
    clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp

Modified: clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp?rev=347563&r1=347562&r2=347563&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp (original)
+++ clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp Mon Nov 26 07:52:16 2018
@@ -587,9 +587,11 @@ const Symbol *SymbolCollector::addDeclar
   if (!Include.empty())
     S.IncludeHeaders.emplace_back(Include, 1);
 
+  llvm::Optional<OpaqueType> TypeStorage;
   if (S.Flags & Symbol::IndexedForCodeCompletion) {
-    if (auto T = OpaqueType::fromCompletionResult(*ASTCtx, SymbolCompletion))
-      S.Type = T->raw();
+    TypeStorage = OpaqueType::fromCompletionResult(*ASTCtx, SymbolCompletion);
+    if (TypeStorage)
+      S.Type = TypeStorage->raw();
   }
 
   S.Origin = Opts.Origin;




More information about the cfe-commits mailing list