busybox/networking
Denys Vlasenko 3fb6b31c71 tar: strip unsafe hardlink components - GNU tar does the same
Defends against files like these (python reproducer):

import tarfile
ti = tarfile.TarInfo("leak_hosts")
ti.type = tarfile.LNKTYPE
ti.linkname = "/etc/hosts"  # or "../etc/hosts" or ".."
ti.size = 0
with tarfile.open("/tmp/hardlink.tar", "w") as t:
	t.addfile(ti)

function                                             old     new   delta
skip_unsafe_prefix                                     -     127    +127
get_header_tar                                      1752    1754      +2
.rodata                                           106861  106856      -5
unzip_main                                          2715    2706      -9
strip_unsafe_prefix                                  102      18     -84
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/3 up/down: 129/-98)            Total: 31 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2026-01-29 12:01:56 +01:00
..
libiproute ip route: make cache printing a bit more similar to upstream 2025-07-01 12:54:00 +02:00
ssl_helper
ssl_helper-wolfssl
udhcp networking/udhcp: fix typo in comment 2026-01-14 08:08:26 +01:00
arp.c Remove "select PLATFORM_LINUX" 2022-11-29 14:14:06 +01:00
arping.c Update applet size estimates 2023-07-10 17:25:21 +02:00
brctl.c introduce and use exitcode_t 2023-07-17 17:29:36 +02:00
Config.src config system: move some options closer to relevalnt tool subdirectories 2021-10-12 13:23:29 +02:00
dnsd.c Update applet size estimates 2023-07-10 17:25:21 +02:00
ether-wake.c Update applet size estimates 2023-07-10 17:25:21 +02:00
ftpd.c ftpd: code shrink, move replace_char() to libbb 2025-08-02 07:18:56 +02:00
ftpgetput.c Update applet size estimates 2023-07-10 17:25:21 +02:00
hostname.c whitespace fix 2025-07-05 12:59:42 +02:00
httpd.c httpd: handle bare "Location: URL" redirects from CGIs 2026-01-28 17:45:37 +01:00
httpd_helpers.sh networking/httpd_indexcgi.c: non-mallocing version 2026-01-26 04:48:28 +01:00
httpd_indexcgi.c httpd: do not use a global variable in index.cgi 2026-01-29 02:39:31 +01:00
httpd_post_upload.cgi httpd_post_upload.cgi: use mktemp to avoid $RANDOM 2021-06-06 13:44:08 +02:00
httpd_ratelimit_cgi.c tar: strip unsafe hardlink components - GNU tar does the same 2026-01-29 12:01:56 +01:00
httpd_ssi.c style fix 2022-05-01 17:06:00 +02:00
ifconfig.c Remove "select PLATFORM_LINUX" 2022-11-29 14:14:06 +01:00
ifenslave.c build system: drop PLATFORM_LINUX 2020-08-13 17:12:56 +02:00
ifplugd.c Update applet size estimates 2023-07-10 17:25:21 +02:00
ifupdown.c libbb: add bit counting function, use where appropriate 2024-05-31 16:03:23 +02:00
inetd.c libbb: code shrink: introduce and use [_]exit_FAILURE() 2023-06-15 11:55:56 +02:00
interface.c *: slap on a few ALIGN* where appropriate 2022-02-06 19:53:10 +01:00
ip.c ip link: support for the CAN netlink 2024-02-26 14:10:10 +01:00
ipcalc.c libbb: add bit counting function, use where appropriate 2024-05-31 16:03:23 +02:00
isrv.c libbb: reduce the overhead of single parameter bb_error_msg() calls 2019-07-02 11:35:03 +02:00
isrv.h
isrv_identd.c Update applet size estimates 2023-07-10 17:25:21 +02:00
Kbuild.src
nameif.c Update applet size estimates 2023-07-10 17:25:21 +02:00
nbd-client.c Update applet size estimates 2023-07-10 17:25:21 +02:00
nc.c libbb: code shrink: introduce and use [_]exit_SUCCESS() 2022-01-05 22:16:06 +01:00
nc_bloaty.c typo fix 2024-06-01 10:51:58 +02:00
netstat.c decrease padding: gcc-9.3.1 slaps 32-byte alignment on arrays willy-nilly 2020-11-30 14:58:02 +01:00
nslookup.c Update applet size estimates 2023-07-10 17:25:21 +02:00
ntpd.c ntpd: set tmx.maxerror properly - avoid STA_UNSYNC 2025-10-11 23:48:04 +02:00
ntpd.diff
parse_pasv_epsv.c networking: support ftp PASV responses not ending with ')' 2020-07-19 20:59:35 +02:00
ping.c libbb: code shrink: introduce and use [_]exit_FAILURE() 2023-06-15 11:55:56 +02:00
pscan.c Update applet size estimates 2023-07-10 17:25:21 +02:00
route.c Update applet size estimates 2023-07-10 17:25:21 +02:00
slattach.c Update applet size estimates 2023-07-10 17:25:21 +02:00
ssl_client.c Update applet size estimates 2023-07-10 17:25:21 +02:00
tc.c introduce and use exitcode_t 2023-07-17 17:29:36 +02:00
tcpudp.c tcp/udpsvd: robustify SIGCHLD handling 2021-06-05 15:24:04 +02:00
tcpudp_perhost.c
tcpudp_perhost.h
telnet.c randomconfig fixes 2020-12-29 16:53:11 +01:00
telnetd.c telnetd: improve --help 2025-07-27 14:24:23 +02:00
telnetd.ctrlSQ.patch
telnetd.IAC_test.sh
tftp.c tftp: use bb_error_msg instead of info_msg for a debug message 2025-07-18 10:42:09 +02:00
tls.c tls: better error message when TLS record is truncated 2025-11-25 02:47:10 +01:00
tls.h libbb: introduce and use block-XOR functions 2025-07-09 07:00:59 +02:00
tls_aes.c tls: code shrink in AES code 2020-12-15 18:47:25 +01:00
tls_aes.h
tls_aesgcm.c libbb: introduce and use block-XOR functions 2025-07-09 07:00:59 +02:00
tls_aesgcm.h
tls_fe.c tls: x25519: code shrink by factoring out common code 2021-12-01 15:09:44 +01:00
tls_pstm.c tls: whitespace fixes 2021-04-27 00:40:40 +02:00
tls_pstm.h whitespace fix 2021-10-11 19:11:06 +02:00
tls_pstm_montgomery_reduce.c tls: further reduce register pressure in i386 assembly 2021-04-20 19:03:55 +02:00
tls_pstm_mul_comba.c networking: cc is not a register 2019-05-17 22:56:47 +02:00
tls_pstm_sqr_comba.c networking: cc is not a register 2019-05-17 22:56:47 +02:00
tls_rsa.c tls: whitespace fixes 2021-04-27 00:40:40 +02:00
tls_rsa.h
tls_sp_c32.c tls: P256: improve x86_64 multiplication asm code 2024-07-12 11:10:24 +02:00
traceroute.c Update applet size estimates 2023-07-10 17:25:21 +02:00
tunctl.c Update applet size estimates 2023-07-10 17:25:21 +02:00
vconfig.c Update applet size estimates 2023-07-10 17:25:21 +02:00
wget.c wget: fix compile warnings when WGET_FTP is not selected 2024-09-26 16:27:10 +02:00
whois.c Update applet size estimates 2023-07-10 17:25:21 +02:00
zcip.c Update applet size estimates 2023-07-10 17:25:21 +02:00