busybox/archival/libarchive
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
..
bz *: add more beneficial NOINLINEs 2021-10-10 14:32:05 +02:00
unxz *: add more beneficial NOINLINEs 2021-10-10 14:32:05 +02:00
common.c
data_align.c
data_extract_all.c tar: add TODO about a bug with non-writable directories on extract 2021-01-01 13:34:25 +01:00
data_extract_to_command.c decrease paddign: gcc-9.3.1 slaps 32-byte alignment on arrays willy-nilly 2020-11-30 13:03:03 +01:00
data_extract_to_stdout.c
data_skip.c
decompress_bunzip2.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
decompress_gunzip.c decompress_gunzip: simplify ERR_RET bit clearing 2021-05-03 14:58:32 +02:00
decompress_uncompress.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
decompress_unlzma.c unlzma: fix a case where we could read before beginning of buffer 2021-06-15 15:14:00 +02:00
decompress_unxz.c dpkg-deb: work around bogus error message when working with XZ compressed packages 2019-10-11 14:11:44 +02:00
filter_accept_all.c
filter_accept_list_reassign.c
filter_accept_list.c
filter_accept_reject_list.c
find_list_entry.c
get_header_ar.c libarchive/get_header_ar.c: fix extraction of archives from binutils in deterministic mode 2021-12-12 23:34:43 +01:00
get_header_cpio.c cpio: fix sscanf on unterminated buffer 2021-06-23 19:06:09 +02:00
get_header_tar_bz2.c
get_header_tar_gz.c
get_header_tar_lzma.c
get_header_tar_xz.c
get_header_tar.c tar: prevent malicious archives with enormous long name sizes OOMing the machine 2021-10-11 19:28:39 +02:00
header_list.c
header_skip.c
header_verbose_list.c libbb: eliminate a static data array in bb_mode_string() 2021-09-17 01:18:31 +02:00
init_handle.c
Kbuild.src hush: allow hush to run embedded scripts 2018-11-27 16:13:07 +01:00
liblzo.h
lzo1x_1.c
lzo1x_1o.c
lzo1x_9x.c randomconfig fixes 2018-12-27 18:03:20 +01:00
lzo1x_c.c
lzo1x_d.c
open_transformer.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
seek_by_jump.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
seek_by_read.c
unpack_ar_archive.c archival: avoid std namespace for local includes 2020-11-16 13:24:24 +01:00
unsafe_prefix.c
unsafe_symlink_target.c tar: fix interaction of delayed symlink and hardlink creation 2018-05-22 17:34:31 +02:00