From 0e0de90b35b61edcfae3030c150b9d7e42bf39fe Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Fri, 10 Dec 2021 17:03:51 +0100 Subject: [PATCH] extract_archive: fix "Hard-link target '...'" error Fixes #5741 --- src/libutil/tarfile.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libutil/tarfile.cc b/src/libutil/tarfile.cc index 934b70162..790bc943a 100644 --- a/src/libutil/tarfile.cc +++ b/src/libutil/tarfile.cc @@ -96,6 +96,13 @@ static void extract_archive(TarArchive & archive, const Path & destDir) archive_entry_copy_pathname(entry, (destDir + "/" + name).c_str()); + // Patch hardlink path + const char *original_hardlink = archive_entry_hardlink(entry); + if (original_hardlink) { + archive_entry_copy_hardlink(entry, + (destDir + "/" + original_hardlink).c_str()); + } + archive.check(archive_read_extract(archive.archive, entry, flags)); }