From: Adrian Prantl Date: Tue, 23 Apr 2019 15:44:22 +0000 (+0000) Subject: [dsymutil] Fix use-after-free when sys::path::append grows the buffer. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d596b3b3d505eaf33d7949185c6c858483c8186;p=llvm [dsymutil] Fix use-after-free when sys::path::append grows the buffer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359003 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/dsymutil/dsymutil.cpp b/tools/dsymutil/dsymutil.cpp index 32569846361..2e835e444c2 100644 --- a/tools/dsymutil/dsymutil.cpp +++ b/tools/dsymutil/dsymutil.cpp @@ -328,9 +328,9 @@ static Expected getOutputFileName(llvm::StringRef InputFile) { return std::move(E); llvm::sys::path::append(Path, "Contents", "Resources"); - StringRef ResourceDir = Path; + std::string ResourceDir = Path.str(); llvm::sys::path::append(Path, "DWARF", llvm::sys::path::filename(DwarfFile)); - return OutputLocation(Path.str(), ResourceDir.str()); + return OutputLocation(Path.str(), ResourceDir); } /// Parses the command line options into the LinkOptions struct and performs