Author: d0k Date: Thu Dec 21 09:51:35 2017 New Revision: 321286 URL: http://llvm.org/viewvc/llvm-project?rev=321286&view=rev Log: [clangd] Fix use after free.
Found by asan. 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=321286&r1=321285&r2=321286&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp (original) +++ clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp Thu Dec 21 09:51:35 2017 @@ -95,9 +95,10 @@ bool SymbolCollector::handleDeclOccurenc return true; auto &SM = ND->getASTContext().getSourceManager(); - SymbolLocation Location = { - makeAbsolutePath(SM, SM.getFilename(D->getLocation())), - SM.getFileOffset(D->getLocStart()), SM.getFileOffset(D->getLocEnd())}; + std::string FilePath = + makeAbsolutePath(SM, SM.getFilename(D->getLocation())); + SymbolLocation Location = {FilePath, SM.getFileOffset(D->getLocStart()), + SM.getFileOffset(D->getLocEnd())}; std::string QName = ND->getQualifiedNameAsString(); auto ScopeAndName = splitQualifiedName(QName); Symbols.insert({std::move(ID), ScopeAndName.second, ScopeAndName.first, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits