aboutsummaryrefslogtreecommitdiffstats
path: root/tools/tar/patches/100-symlink-force-root-name.patch
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tar/patches/100-symlink-force-root-name.patch')
-rw-r--r--tools/tar/patches/100-symlink-force-root-name.patch21
1 files changed, 13 insertions, 8 deletions
diff --git a/tools/tar/patches/100-symlink-force-root-name.patch b/tools/tar/patches/100-symlink-force-root-name.patch
index 896b4723fc..93f889761b 100644
--- a/tools/tar/patches/100-symlink-force-root-name.patch
+++ b/tools/tar/patches/100-symlink-force-root-name.patch
@@ -5,16 +5,21 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/src/create.c
+++ b/src/create.c
-@@ -545,12 +545,8 @@ write_gnu_long_link (struct tar_stat_inf
- char *tmpname;
+@@ -544,17 +544,8 @@ write_gnu_long_link (struct tar_stat_inf
+ union block *header;
header = start_private_header ("././@LongLink", size, 0);
-- uid_to_uname (0, &tmpname);
-- UNAME_TO_CHARS (tmpname, header->header.uname);
-- free (tmpname);
-- gid_to_gname (0, &tmpname);
-- GNAME_TO_CHARS (tmpname, header->header.gname);
-- free (tmpname);
+- if (! numeric_owner_option)
+- {
+- static char *uname, *gname;
+- if (!uname)
+- {
+- uid_to_uname (0, &uname);
+- gid_to_gname (0, &gname);
+- }
+- UNAME_TO_CHARS (uname, header->header.uname);
+- GNAME_TO_CHARS (gname, header->header.gname);
+- }
+ UNAME_TO_CHARS ("root", header->header.uname);
+ GNAME_TO_CHARS ("root", header->header.gname);