diff options
Diffstat (limited to 'lib/Archive/ArchiveWriter.cpp')
-rw-r--r-- | lib/Archive/ArchiveWriter.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Archive/ArchiveWriter.cpp b/lib/Archive/ArchiveWriter.cpp index 59fb7bdd3f..c5ad5fc41c 100644 --- a/lib/Archive/ArchiveWriter.cpp +++ b/lib/Archive/ArchiveWriter.cpp @@ -364,8 +364,9 @@ Archive::writeToDisk(bool CreateSymbolTable, bool TruncateNames, bool Compress, // Create a temporary file to store the archive in SmallString<128> TempArchivePath; int ArchFD; - if (error_code ec = sys::fs::unique_file("%%-%%-%%-%%" + archPath.str(), - ArchFD, TempArchivePath)) { + if (error_code ec = + sys::fs::unique_file("%%-%%-%%-%%-" + sys::path::filename(archPath.str()), + ArchFD, TempArchivePath)) { if (ErrMsg) *ErrMsg = ec.message(); return true; } @@ -421,8 +422,9 @@ Archive::writeToDisk(bool CreateSymbolTable, bool TruncateNames, bool Compress, // Open another temporary file in order to avoid invalidating the // mmapped data - if (error_code ec = sys::fs::unique_file("%%-%%-%%-%%" + archPath.str(), - ArchFD, TempArchiveWithSymbolTablePath)) { + if (error_code ec = + sys::fs::unique_file("%%-%%-%%-%%-" + sys::path::filename(archPath.str()), + ArchFD, TempArchiveWithSymbolTablePath)) { if (ErrMsg) *ErrMsg = ec.message(); return true; } |