From: Vitaly Buka Date: Mon, 14 Nov 2016 20:21:41 +0000 (+0000) Subject: Fix heap-use-after-free coff::createPDB X-Git-Tag: llvmorg-4.0.0-rc1~4619 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4cf112c6f2d79c39dc1075495f6c1cec85bd1571;p=platform%2Fupstream%2Fllvm.git Fix heap-use-after-free coff::createPDB Summary: getInputSections returns std::vector by value and ArrayRef pointed to destroyed temporarily. Reviewers: ruiu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26630 llvm-svn: 286880 --- diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp index 564648b..871cded 100644 --- a/lld/COFF/PDB.cpp +++ b/lld/COFF/PDB.cpp @@ -82,9 +82,8 @@ void coff::createPDB(StringRef Path, SymbolTable *Symtab, IpiBuilder.setVersionHeader(pdb::PdbTpiV80); // Add Section Contributions. - ArrayRef InputSections = getInputSections(Symtab); std::vector Contribs = - pdb::DbiStreamBuilder::createSectionContribs(InputSections); + pdb::DbiStreamBuilder::createSectionContribs(getInputSections(Symtab)); DbiBuilder.setSectionContribs(Contribs); // Add Section Map stream.