<div dir="ltr">Thanks Ben!<div><br><div>This was my r321272 - in hindsight I really should have run the tests with asan for that type of change.</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 21, 2017 at 6:51 PM, Benjamin Kramer via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: d0k<br>
Date: Thu Dec 21 09:51:35 2017<br>
New Revision: 321286<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=321286&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=321286&view=rev</a><br>
Log:<br>
[clangd] Fix use after free.<br>
<br>
Found by asan.<br>
<br>
Modified:<br>
    clang-tools-extra/trunk/<wbr>clangd/index/SymbolCollector.<wbr>cpp<br>
<br>
Modified: clang-tools-extra/trunk/<wbr>clangd/index/SymbolCollector.<wbr>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp?rev=321286&r1=321285&r2=321286&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/clang-tools-extra/<wbr>trunk/clangd/index/<wbr>SymbolCollector.cpp?rev=<wbr>321286&r1=321285&r2=321286&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- clang-tools-extra/trunk/<wbr>clangd/index/SymbolCollector.<wbr>cpp (original)<br>
+++ clang-tools-extra/trunk/<wbr>clangd/index/SymbolCollector.<wbr>cpp Thu Dec 21 09:51:35 2017<br>
@@ -95,9 +95,10 @@ bool SymbolCollector::<wbr>handleDeclOccurenc<br>
       return true;<br>
<br>
     auto &SM = ND->getASTContext().<wbr>getSourceManager();<br>
-    SymbolLocation Location = {<br>
-        makeAbsolutePath(SM, SM.getFilename(D->getLocation(<wbr>))),<br>
-        SM.getFileOffset(D-><wbr>getLocStart()), SM.getFileOffset(D->getLocEnd(<wbr>))};<br>
+    std::string FilePath =<br>
+        makeAbsolutePath(SM, SM.getFilename(D->getLocation(<wbr>)));<br>
+    SymbolLocation Location = {FilePath, SM.getFileOffset(D-><wbr>getLocStart()),<br>
+                               SM.getFileOffset(D->getLocEnd(<wbr>))};<br>
     std::string QName = ND->getQualifiedNameAsString()<wbr>;<br>
     auto ScopeAndName = splitQualifiedName(QName);<br>
     Symbols.insert({std::move(ID), ScopeAndName.second, ScopeAndName.first,<br>
<br>
<br>
______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>