The tar -x command in busybox does not restore the file mode correctly.
The reason is most probably this code in
archival/libunarachive/data_extract_all.c:
chmod(file_header->name, file_header->mode);
chown(file_header->name, file_header->uid, file_header->gid);
chown clears the set*id bits (on current versions of linux :). Flipping
the order around fixes the problem.
(tested with 1.00pre3 from cvs).
}
}
- chmod(file_header->name, file_header->mode);
chown(file_header->name, file_header->uid, file_header->gid);
+ chmod(file_header->name, file_header->mode);
if (archive_handle->flags & ARCHIVE_PRESERVE_DATE) {
struct utimbuf t;