busybox/archival
Peter Korsgaard cb91a818c8 libarchive/get_header_ar.c: fix extraction of archives from binutils in deterministic mode
GNU binutils in deterministic mode (ar rD or built with
--enable-deterministic-archives) hard codes file mode to 0644 (NOT 0100644)
since https://github.com/bminor/binutils-gdb/commit/36e4dce69dd2

This confuses busybox ar x (data_extract_all):

touch a; ar rD a.ar a
ar: creating a.ar

busybox ar x a.ar
ar: unrecognized file type
hexdump -C a.ar
00000000  21 3c 61 72 63 68 3e 0a  61 2f 20 20 20 20 20 20  |!<arch>.a/      |
00000010  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
00000020  20 20 20 20 30 20 20 20  20 20 30 20 20 20 20 20  |    0     0     |
00000030  36 34 34 20 20 20 20 20  30 20 20 20 20 20 20 20  |644     0       |
00000040  20 20 60 0a                                       |  `.|

As a workaround, force the mode bits to S_IFREG, as nothing else makes sense
for ar.

function                                             old     new   delta
get_header_ar                                        539     542      +3

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-12-12 23:34:43 +01:00
..
libarchive libarchive/get_header_ar.c: fix extraction of archives from binutils in deterministic mode 2021-12-12 23:34:43 +01:00
ar.c
bbunzip_test2.sh
bbunzip_test3.sh add tests for gunzip 2007-10-05 15:27:03 +00:00
bbunzip_test.sh
bbunzip.c
bzip2.c
chksum_and_xwrite_tar_header.c
Config.src
cpio.c
dpkg_deb.c
dpkg.c
gzip.c
Kbuild.src
lzop.c
rpm.c libbb: add and use infrastructure for fixed page size optimization 2020-12-14 18:54:30 +01:00
rpm.h
tar_symlink_attack
tar.c
unzip.c