From 165f92c00b84062225b28f8159ce75588d325675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Fri, 9 Feb 2024 17:25:56 +0100 Subject: [PATCH] Fix #12041, 0c81579: Tarball extraction failing due to incorrect filename (#12044) --- src/fileio.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/fileio.cpp b/src/fileio.cpp index 71a65e4add..fc892ed242 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -700,7 +700,10 @@ bool ExtractTar(const std::string &tar_filename, Subdirectory subdir) for (auto &it2 : _tar_filelist[subdir]) { if (tar_filename != it2.second.tar_filename) continue; - filename.replace(p + 1, std::string::npos, it2.first); + /* it2.first is tarball + PATHSEPCHAR + name. */ + std::string_view name = it2.first; + name.remove_prefix(name.find_first_of(PATHSEPCHAR) + 1); + filename.replace(p + 1, std::string::npos, name); Debug(misc, 9, " extracting {}", filename);