Marc A. Lehmann writes:
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).
This commit is contained in:
parent
6231f092bd
commit
2fdba24620
@ -112,8 +112,8 @@ extern void data_extract_all(archive_handle_t *archive_handle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
chmod(file_header->name, file_header->mode);
|
|
||||||
chown(file_header->name, file_header->uid, file_header->gid);
|
chown(file_header->name, file_header->uid, file_header->gid);
|
||||||
|
chmod(file_header->name, file_header->mode);
|
||||||
|
|
||||||
if (archive_handle->flags & ARCHIVE_PRESERVE_DATE) {
|
if (archive_handle->flags & ARCHIVE_PRESERVE_DATE) {
|
||||||
struct utimbuf t;
|
struct utimbuf t;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user