Fix #12041, 0c81579: Tarball extraction failing due to incorrect filename (#12044)

This commit is contained in:
Loïc Guilloux 2024-02-09 17:25:56 +01:00 committed by GitHub
parent 9b323b4ef9
commit 165f92c00b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 4 additions and 1 deletions

View File

@ -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);