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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits