diff options
| author | Adrian Prantl <aprantl@apple.com> | 2019-04-23 15:44:22 +0000 |
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2019-04-23 15:44:22 +0000 |
| commit | 53bd7ce42ed64f5cd3d15ecbf4da00dc57af8e9b (patch) | |
| tree | b302bda11dc0b200354d44edd1156be5dc7e4b0c | |
| parent | c7bde29cfeb7315d647998a4affb05dc7a8a8fce (diff) | |
| download | bcm5719-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.cpp | 4 |
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 |

