summaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorDenys Vlasenko2009-08-30 01:10:17 +0200
committerDenys Vlasenko2009-08-30 01:18:34 +0200
commitb9762922d1c5ab4022f35033c5efaa013dd2fdbf (patch)
tree3bce8323407846b1460d16aef757da3e3e3912c0 /archival
parentecc2a2e015628d40d8ff55f4d68ad4dbcd6f854c (diff)
downloadbusybox-b9762922d1c5ab4022f35033c5efaa013dd2fdbf.zip
busybox-b9762922d1c5ab4022f35033c5efaa013dd2fdbf.tar.gz
libunarchive: fix a bug where mode and time is no longer restored
Introduced by me in 1.15.x. Found by Rob Landley. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival')
-rw-r--r--archival/libunarchive/data_extract_all.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index 123d1de..d79ef7c 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -132,7 +132,7 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
#endif
lchown(file_header->name, file_header->uid, file_header->gid);
}
- if (S_ISLNK(file_header->mode)) {
+ if (!S_ISLNK(file_header->mode)) {
/* uclibc has no lchmod, glibc is even stranger -
* it has lchmod which seems to do nothing!
* so we use chmod... */