[git commit master] tar: do chown, not lchown to restore mode (compat)

Denys Vlasenko vda.linux at googlemail.com
Thu Sep 17 01:02:57 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=885583ebe3fea9eb8546bfb0614231d8f41e7979
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/libunarchive/data_extract_all.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index 3e4a77d..0d529a6 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -128,10 +128,11 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
 				struct group *grp = getgrnam(file_header->gname);
 				if (grp) gid = grp->gr_gid;
 			}
-			lchown(file_header->name, uid, gid);
+			/* GNU tar 1.15.1 use chown, not lchown */
+			chown(file_header->name, uid, gid);
 		} else
 #endif
-			lchown(file_header->name, file_header->uid, file_header->gid);
+			chown(file_header->name, file_header->uid, file_header->gid);
 	}
 	if (!S_ISLNK(file_header->mode)) {
 		/* uclibc has no lchmod, glibc is even stranger -
-- 
1.6.3.3



More information about the busybox-cvs mailing list