summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2019-04-23 15:44:22 +0000
committerAdrian Prantl <aprantl@apple.com>2019-04-23 15:44:22 +0000
commit53bd7ce42ed64f5cd3d15ecbf4da00dc57af8e9b (patch)
treeb302bda11dc0b200354d44edd1156be5dc7e4b0c
parentc7bde29cfeb7315d647998a4affb05dc7a8a8fce (diff)
downloadbcm5719-llvm-53bd7ce42ed64f5cd3d15ecbf4da00dc57af8e9b.tar.gz
bcm5719-llvm-53bd7ce42ed64f5cd3d15ecbf4da00dc57af8e9b.zip
[dsymutil] Fix use-after-free when sys::path::append grows the buffer.
<rdar://problem/50117620> llvm-svn: 359003
-rw-r--r--llvm/tools/dsymutil/dsymutil.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/tools/dsymutil/dsymutil.cpp b/llvm/tools/dsymutil/dsymutil.cpp
index 32569846361..2e835e444c2 100644
--- a/llvm/tools/dsymutil/dsymutil.cpp
+++ b/llvm/tools/dsymutil/dsymutil.cpp
@@ -328,9 +328,9 @@ static Expected<OutputLocation> 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
OpenPOWER on IntegriCloud