[llvm] r359003 - [dsymutil] Fix use-after-free when sys::path::append grows the buffer.

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 23 08:44:23 PDT 2019


Author: adrian
Date: Tue Apr 23 08:44:22 2019
New Revision: 359003

URL: http://llvm.org/viewvc/llvm-project?rev=359003&view=rev
Log:
[dsymutil] Fix use-after-free when sys::path::append grows the buffer.

<rdar://problem/50117620>

Modified:
    llvm/trunk/tools/dsymutil/dsymutil.cpp

Modified: llvm/trunk/tools/dsymutil/dsymutil.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/dsymutil.cpp?rev=359003&r1=359002&r2=359003&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/dsymutil.cpp (original)
+++ llvm/trunk/tools/dsymutil/dsymutil.cpp Tue Apr 23 08:44:22 2019
@@ -328,9 +328,9 @@ static Expected<OutputLocation> getOutpu
     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




More information about the llvm-commits mailing list