Denys Vlasenko [Wed, 14 Feb 2018 16:37:41 +0000 (17:37 +0100)]
tls: remove redundant floor prevention
function old new delta
tls_xread_record 499 489 -10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 13 Feb 2018 22:53:24 +0000 (23:53 +0100)]
ping: don't call monotonic_us twice per sending the ping
function old new delta
sendping6 80 85 +5
sendping4 106 111 +5
sendping_tail 209 204 -5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 10/-5) Total: 5 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 13 Feb 2018 22:21:33 +0000 (23:21 +0100)]
ping: implement -A "adaptive ping"
function old new delta
common_ping_main 1757 1862 +105
packed_usage 32367 32427 +60
sendping_tail 236 209 -27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 165/-27) Total: 138 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 13 Feb 2018 17:20:28 +0000 (18:20 +0100)]
inetd,mount: add comment with example of flags to build with libtirpc
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 13 Feb 2018 15:48:52 +0000 (16:48 +0100)]
progress meter: add disabled code for a more stable ETA
Compiles to ~25 bytes if enabled.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 13 Feb 2018 14:30:13 +0000 (15:30 +0100)]
hush: simplify process_command_subs()
Incidentally, this fixes LINENO bug here:
echo "1:${LINENO}"
echo "2:`echo; echo`" # was counting lines in the `cmd` output as LINENO++
echo "3:${LINENO}"
function old new delta
parse_and_run_file 53 71 +18
expand_vars_to_list 1187 1164 -23
setup_file_in_str 25 - -25
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 18/-48) Total: -30 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 13 Feb 2018 13:43:29 +0000 (14:43 +0100)]
ash : fix double-quoted "\z" handling
function old new delta
readtoken1 2602 2608 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 12 Feb 2018 15:46:13 +0000 (16:46 +0100)]
wget: more thorough sanitization of other side's data
function old new delta
get_sanitized_hdr - 156 +156
fgets_trim_sanitize - 128 +128
ftpcmd 129 133 +4
parse_url 461 454 -7
sanitize_string 14 - -14
wget_main 2431 2381 -50
fgets_and_trim 119 - -119
gethdr 163 - -163
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 1/2 up/down: 288/-353) Total: -65 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Ron Yorston [Fri, 9 Feb 2018 09:01:19 +0000 (09:01 +0000)]
testsuite: update busybox and bzcat tests
Test scripts that use CONFIG_* variables need to source .config.
Since this wasn't being done for busybox many tests were skipped.
As a result new failures due to changes in help output were missed.
Also remove some unnecessary echos in the bzcat script.
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 20:25:23 +0000 (21:25 +0100)]
cp: fix option handling in non-longopt config
the patch getopt32: remove opt_complementary
22542eca18e5807b72ddc78999f5101e33f17a53
introduced a regressed in the cp command since it removed all aliases of arguments
if long_opts is not configured.
Patch by Sebastian Gottschall <s.gottschall@dd-wrt.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 20:16:24 +0000 (21:16 +0100)]
arping: code shrink
function old new delta
catcher 310 309 -1
arping_main 1668 1641 -27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 13:55:46 +0000 (14:55 +0100)]
libbb: introduce and use bb_getsockname()
function old new delta
bb_getsockname - 18 +18
xrtnl_open 88 83 -5
do_iplink 1216 1209 -7
arping_main 1686 1668 -18
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/3 up/down: 18/-30) Total: -12 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 13:35:05 +0000 (14:35 +0100)]
arping: move packet buffer, sigset and struct ifreq to malloced "globals"
This way, we can zero them all in one go.
We do malloc() anyway, thus nothing is lost by mallocing "globals"
function old new delta
arping_main 1683 1686 +3
finish 100 86 -14
catcher 350 310 -40
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 3/-54) Total: -51 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 12:48:52 +0000 (13:48 +0100)]
arping: fix the case when inherited signal mask masks out ALRM
function old new delta
arping_main 1629 1635 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 12:37:07 +0000 (13:37 +0100)]
arping: change a few message strings to be closer to iputils arping
ARPING 192.168.1.1 from 192.168.1.172 wlan0
Unicast reply from 192.168.1.1 [F4:F2:6D:52:A8:DE] 1.672ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
ARPING 192.168.1.1 from 192.168.1.172 wlan0
Unicast reply from 192.168.1.1 [f4:f2:6d:52:a8:de] 1.152ms
Sent 1 probe(s) (1 broadcast(s))
Received 1 response(s) (0 request(s), 0 broadcast(s))
function old new delta
finish 120 100 -20
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Feb 2018 12:27:54 +0000 (13:27 +0100)]
arping: code shrink
Do not clear extra bits on option_mask32, it's not necessary.
Move DAD bit to 2, this makes exit logic simpler.
function old new delta
arping_main 1655 1629 -26
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 9 Feb 2018 19:21:01 +0000 (20:21 +0100)]
svlogd: improve --help text
function old new delta
packed_usage 32278 32367 +89
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 8 Feb 2018 18:39:42 +0000 (19:39 +0100)]
hush: probably fixing a bug in last LINENO fix
I don't have an example of mishandled script, but the logic looked wrong:
it could sometimes treat newlines as if they are spaces.
function old new delta
parse_stream 2788 2787 -1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 8 Feb 2018 18:19:04 +0000 (19:19 +0100)]
hush: LINENO fix
Script triggering the bug:
t=0
echo "at line ${LINENO}"
while [ ${t} -lt 10 ]; do
echo "at line ${LINENO}" # LINENO was 3 instead of 4 here
t=$((t+1))
done
function old new delta
parse_stream 2754 2788 +34
done_word 711 738 +27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 61/0) Total: 61 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 8 Feb 2018 07:42:37 +0000 (08:42 +0100)]
ip: fix crash in "ip neigh show"
parse_rtattr() was using tb[] array without initializing it.
Based on patch by Balaji Punnuru <balaji_punnuru@cable.comcast.com>
function old new delta
parse_rtattr 85 107 +22
print_route 1630 1617 -13
print_linkinfo 807 794 -13
iproute_get 835 822 -13
print_rule 680 665 -15
ll_remember_index 263 248 -15
print_addrinfo 1223 1197 -26
ipaddr_list_or_flush 1253 1223 -30
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/7 up/down: 22/-125) Total: -103 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 7 Feb 2018 23:28:30 +0000 (00:28 +0100)]
wget: do not ask for TLS-encrypted downloads on plain ftp:// URLs
function old new delta
wget_main 2422 2431 +9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 7 Feb 2018 22:48:34 +0000 (23:48 +0100)]
libbb: shrink wget/tftp progress indicator code a bit more
This makes size display 5-char wide instead of 6-char, but now it's smarter
(can show sizes in "12.3M" format).
function old new delta
bb_progress_update 654 622 -32
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 7 Feb 2018 16:47:39 +0000 (17:47 +0100)]
libbb: shrink wget/tftp progress indicator code for 32-bit
function old new delta
bb_progress_update 756 654 -102
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 7 Feb 2018 15:32:30 +0000 (16:32 +0100)]
udhcp: do not setlinebuf(stdout), we don't print to stdout anymore
Since bb_info_msg() was eliminated type of buffering on stdout is not important
function old new delta
udhcpd_main 1463 1451 -12
udhcpc_main 2735 2723 -12
setlinebuf 19 - -19
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/2 up/down: 0/-43) Total: -43 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 7 Feb 2018 00:33:25 +0000 (01:33 +0100)]
bzip2: expose tuning knob for faster/smaller code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 19:49:27 +0000 (20:49 +0100)]
wget: attempt to negotiate encrypted data ftps stream ("PROT P")
function old new delta
wget_main 2382 2422 +40
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 17:01:39 +0000 (18:01 +0100)]
fix compile failure in previous commit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 16:59:32 +0000 (17:59 +0100)]
unzip: do not set directory mode to 0777
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882177
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 16:39:45 +0000 (17:39 +0100)]
ar: hopefully fix out-of-bounds read in get_header_ar()
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882175
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 16:11:15 +0000 (17:11 +0100)]
fix a thinko in parse_pasv_epsv.c
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 14:48:12 +0000 (15:48 +0100)]
wget: add EPSV support
function old new delta
parse_pasv_epsv - 151 +151
wget_main 2440 2382 -58
xconnect_ftpdata 223 94 -129
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/2 up/down: 151/-187) Total: -36 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 14:15:08 +0000 (15:15 +0100)]
wget: initial support for ftps://
function old new delta
spawn_ssl_client - 185 +185
parse_url 409 461 +52
packed_usage 32259 32278 +19
tls_run_copy_loop 293 306 +13
ssl_client_main 128 138 +10
showmode 330 338 +8
P_FTPS - 5 +5
filter_datapoints 177 179 +2
deflate 907 905 -2
decode_one_format 723 716 -7
wget_main 2591 2440 -151
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 6/3 up/down: 294/-160) Total: 134 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 14:02:16 +0000 (15:02 +0100)]
wget: preparations for ftps:// support (block move, no code changes)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 6 Feb 2018 12:33:00 +0000 (13:33 +0100)]
tls: fix hash calculations if client cert is requested and sent
Symptoms: connecting to
openssl s_server -cert vsftpd.pem -port 990 -debug -cipher AES128-SHA
works, but with "-verify 1" option added it does not.
function old new delta
tls_xread_record 474 499 +25
tls_handshake 1582 1607 +25
bad_record_die 98 110 +12
tls_run_copy_loop 282 293 +11
tls_xread_handshake_block 58 51 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 73/-7) Total: 66 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 5 Feb 2018 18:06:40 +0000 (19:06 +0100)]
ftpd: handle restarts past
2147483647 bytes. closes 10741
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Feb 2018 23:34:08 +0000 (00:34 +0100)]
bzip2: work around bad compiler optimization
gc-6.1.1 x86_64:
function old new delta
generateMTFValues 380 367 -13
gcc-4.3.1 386:
function old new delta
inner_loop - 41 +41
generateMTFValues 357 294 -63
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 41/-63) Total: -22 bytes
gcc-6.3.0 386:
function old new delta
inner_loop - 36 +36
generateMTFValues 363 250 -113
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 36/-113) Total: -77 bytes
The last case, gcc-6.3.0, runs almost 3 times faster after this change.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Feb 2018 22:55:14 +0000 (23:55 +0100)]
ftpd: fix aliasing warning from gcc-6.1.1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Feb 2018 18:08:34 +0000 (19:08 +0100)]
ftpgetput: add EPSV support (PASV-like thing for IPv6)
Based on a patch by Kev Kitchens.
function old new delta
xconnect_ftpdata 149 223 +74
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Feb 2018 17:49:31 +0000 (18:49 +0100)]
ftpgetput: preparations for ESPV support, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Feb 2018 17:32:21 +0000 (18:32 +0100)]
ftpd: switch to mallced "globals"
function old new delta
cmdio_write_ok 45 49 +4
cmdio_write_error 45 49 +4
handle_dir_common 360 363 +3
handle_cwd 40 43 +3
port_or_pasv_was_seen 37 39 +2
pasv_active 13 15 +2
cmdio_write_raw 34 36 +2
cmdio_write 78 80 +2
get_remote_transfer_fd 94 93 -1
port_pasv_cleanup 50 45 -5
bind_for_passive_mode 124 119 -5
cmdio_get_cmd_and_arg 237 230 -7
timeout_handler 104 93 -11
ftpd_main 2222 2152 -70
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 8/6 up/down: 22/-99) Total: -77 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 23:15:29 +0000 (00:15 +0100)]
gunzip: fix from gzip-1.3.12 for gzip file with all zero length codes
Corresponding changelog from gzip-1.3.12 reads:
"""
2006-12-20 Paul Eggert <eggert@cs.ucla.edu>
* inflate.c (huft_build): Fix regression that caused gzip to
refuse to uncompress null input (all zero length codes). Problem
reported by Yiorgos Adamopoulos. This regression was caused by
the security patch installed 2006-11-20, which in turn came from
Debian, which in turn apparently came from Thomas Biege of SuSe.
"""
function old new delta
huft_build 1176 1216 +40
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 21:52:11 +0000 (22:52 +0100)]
bzip2: move runningOrder[] back to stack - 256 bytes is not much
function old new delta
mainSort 1119 1108 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 19:50:20 +0000 (20:50 +0100)]
bzip2: move ->origPtr out of struct EState, make a few members smaller
function old new delta
BZ2_compressBlock 223 228 +5
BZ2_blockSort 85 88 +3
generateMTFValues 356 357 +1
handle_compress 355 349 -6
compressStream 538 531 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/2 up/down: 9/-13) Total: -4 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 19:19:51 +0000 (20:19 +0100)]
bzip2: pass sorting params through EState* pointer
function old new delta
mainGtU 499 515 +16
sendMTFValues 2085 2094 +9
mainSort 1116 1119 +3
generateMTFValues 357 356 -1
fallbackSort 1719 1705 -14
mainQSort3 1163 1141 -22
BZ2_blockSort 118 85 -33
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/4 up/down: 28/-70) Total: -42 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 18:11:00 +0000 (19:11 +0100)]
gzip2: small simplification in mainSimpleSort()
function old new delta
mainQSort3 1165 1163 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 17:47:34 +0000 (18:47 +0100)]
bzip2: a few more locals converted to generic types
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 17:28:10 +0000 (18:28 +0100)]
bzip2: eliminate one parameter to mainQSort3()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 17:11:08 +0000 (18:11 +0100)]
bzip2: small simplification in mainSort()
function old new delta
mainSort 1127 1118 -9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 17:03:33 +0000 (18:03 +0100)]
bzip2: convert some locals to unsigned's
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 16:44:00 +0000 (17:44 +0100)]
bzip2: runningOrder[] values are always 0..255, make it uint8
function old new delta
mainSort 1171 1124 -47
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 16:38:23 +0000 (17:38 +0100)]
bzip2: remove redundant clearing of an alredy unset bit
function old new delta
mainSort 1178 1171 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 16:30:16 +0000 (17:30 +0100)]
bzip2: eliminate write-only local numQSorted
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 16:22:06 +0000 (17:22 +0100)]
bzip2: make locals in mainSort() saner, convert one of them from uint16 to unsigned
function old new delta
mainSort 1192 1178 -14
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 15:43:33 +0000 (16:43 +0100)]
bzip2: remove redundant loop termination check in mainSort()
function old new delta
mainSort 1202 1192 -10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 14:59:46 +0000 (15:59 +0100)]
bzip2: reduce indentation, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 14:53:17 +0000 (15:53 +0100)]
bzip2: reuse zPend processing code
function old new delta
generateMTFValues 378 357 -21
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 14:31:54 +0000 (15:31 +0100)]
bzip2: shrink makeMaps_e()
function old new delta
generateMTFValues 378 368 -10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 14:26:00 +0000 (15:26 +0100)]
bzip2: optimize zPend variable code
function old new delta
generateMTFValues 433 378 -55
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 13:56:43 +0000 (14:56 +0100)]
bzip2: have two separate "store bit 0" and "store bit 1" functions
function old new delta
sendMTFValues 2051 2085 +34
bsW1_0 - 33 +33
BZ2_compressBlock 225 223 -2
bsW1 52 - -52
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/1 up/down: 67/-54) Total: 13 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 03:43:46 +0000 (04:43 +0100)]
bzip2: ~1% speedup by special-casing "store 1 bit" function
function old new delta
bsW1 - 52 +52
BZ2_compressBlock 230 225 -5
BZ2_blockSort 125 118 -7
sendMTFValues 2070 2051 -19
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/3 up/down: 52/-31) Total: 21 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 02:34:40 +0000 (03:34 +0100)]
bzip2: rewrite bit of code which depends on integer overflow
function old new delta
sendMTFValues 2093 2070 -23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 02:17:48 +0000 (03:17 +0100)]
bzip2: delete write-only fave[] array
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 02:12:14 +0000 (03:12 +0100)]
bgip2: fewer specifically-sized [u]int32_t's locals in sendMTFValues
Generic ints/unsigneds are usually fine. Yes, really.
function old new delta
sendMTFValues 2100 2093 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 01:03:42 +0000 (02:03 +0100)]
bzip2: code shrink
function old new delta
sendMTFValues 2111 2100 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Feb 2018 00:30:12 +0000 (01:30 +0100)]
bzip2: code shrink
function old new delta
BZ2_compressBlock 225 230 +5
handle_compress 356 355 -1
bsW16 59 56 -3
bsW 64 61 -3
bsFinishWrite 37 32 -5
prepare_new_block 48 34 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/5 up/down: 5/-26) Total: -21 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 2 Feb 2018 19:59:28 +0000 (20:59 +0100)]
bzip2: code shrink
function old new delta
bsW16 - 59 +59
sendMTFValues 2116 2111 -5
bsPutU16 36 - -36
bsPutU32 76 31 -45
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/2 up/down: 59/-86) Total: -27 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 10:44:52 +0000 (11:44 +0100)]
cksum: code shrink
function old new delta
cksum_main 281 262 -19
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 09:56:19 +0000 (10:56 +0100)]
libbb: commonalize a bit of little-endian CRC32 table generation code
function old new delta
global_crc32_new_table_le - 11 +11
crc32_new_table_le - 9 +9
inflate_unzip_internal 560 556 -4
flash_eraseall_main 823 819 -4
unpack_xz_stream 2403 2394 -9
lzop_main 121 112 -9
gzip_main 187 178 -9
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/5 up/down: 20/-35) Total: -15 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 09:41:14 +0000 (10:41 +0100)]
udhcpd: use ptr_to_globals for its lone global data (g_leases)
function old new delta
udhcpd_main 1461 1463 +2
add_lease 320 318 -2
g_leases 4 - -4
write_leases 223 214 -9
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/2 up/down: 2/-15) Total: -13 bytes
text data bss dec hex filename
933232 481 6856 940569 e5a19 busybox_old
933223 481 6852 940556 e5a0c busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Aaro Koskinen [Thu, 1 Feb 2018 08:29:05 +0000 (09:29 +0100)]
cp: implement -T
Implement "cp -T". Some Linux kernel Makefiles started using this recently,
so allow also building on systems using busybox cp.
function old new delta
cp_main 360 428 +68
copy_file 1678 1676 -2
packed_usage 32290 32259 -31
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 76/-39) Total: 35 bytes
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 08:13:14 +0000 (09:13 +0100)]
libarchive: move bbunpack constants to bb_archive.h
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 00:41:31 +0000 (01:41 +0100)]
lzop: code shrink
function old new delta
lzo_decompress 526 524 -2
lzo_compress 473 470 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 00:03:50 +0000 (01:03 +0100)]
unlzop: fix --help: it has -U instead of -k
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Feb 2018 00:00:58 +0000 (01:00 +0100)]
bzip2: code shrink, stop using global data variable
function old new delta
compressStream 523 538 +15
level 1 - -1
bzip2_main 110 73 -37
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 15/-38) Total: -23 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 22:26:11 +0000 (23:26 +0100)]
gzip: "compressed_len" is unused, stop wasting code and time calculating it
function old new delta
flush_block 595 523 -72
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 17:16:34 +0000 (18:16 +0100)]
gzip: remove unnecessary forward declarations, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 16:37:32 +0000 (17:37 +0100)]
gzip: flush output buffer after stored blocks only if necessary
function old new delta
flush_block 671 680 +9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 16:19:59 +0000 (17:19 +0100)]
gzip: flush output buffer after stored blocks, they are not 32-bit aligned
function old new delta
flush_block 665 671 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 16:00:41 +0000 (17:00 +0100)]
gzip: make debugging of bits_sent less ugly, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 15:36:17 +0000 (16:36 +0100)]
gzip: code shrink
function old new delta
flush_block 668 665 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 15:11:44 +0000 (16:11 +0100)]
gzip: code shrink
Use one memset to clear part of G1, and all of G2.
function old new delta
pack_gzip 838 828 -10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 14:42:45 +0000 (15:42 +0100)]
gzip: code shrink
function old new delta
pack_gzip 861 838 -23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 31 Jan 2018 14:32:32 +0000 (15:32 +0100)]
gzip: code shrink and speedup
function old new delta
pack_gzip 908 861 -47
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 23:42:29 +0000 (00:42 +0100)]
gzip: optionally faster put_32bit()
function old new delta
put_32bit 22 55 +33
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 23:01:06 +0000 (00:01 +0100)]
gzip: speed up send_bits()
Replace one RMW op with store. This speeds up gzip of a png file by ~2%.
function old new delta
send_bits 62 66 +4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 22:53:38 +0000 (23:53 +0100)]
gzip: use "unsigned" type for bit fields and bit counts
This does not change any logic, those values should always be positive.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 22:47:45 +0000 (23:47 +0100)]
gzip: use wider (32-bit, not 16) bi_buf
function old new delta
bi_windup 76 74 -2
send_bits 70 62 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 21:37:06 +0000 (22:37 +0100)]
gzip: code shrink
function old new delta
send_bits 92 70 -22
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 17:15:39 +0000 (18:15 +0100)]
gzip: code shrink
function old new delta
fill_window_if_needed - 238 +238
deflate 924 907 -17
pack_gzip 809 790 -19
fill_window 216 - -216
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/2 up/down: 238/-252) Total: -14 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 16:39:57 +0000 (17:39 +0100)]
gzip: code shrink (consolidate zeroing on reinit)
function old new delta
deflate - 938 +938
pack_gzip 1903 923 -980
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 30 Jan 2018 03:29:03 +0000 (04:29 +0100)]
hush: protect against self-modifying trap code
function old new delta
check_and_run_traps 211 236 +25
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 28 Jan 2018 19:41:23 +0000 (20:41 +0100)]
ash: make it possible to disable "const global ptr" optimization
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 28 Jan 2018 19:13:33 +0000 (20:13 +0100)]
shell: handle $((NUM++...) like bash does. Closes 10706
function old new delta
evaluate_string 680 729 +49
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 27 Jan 2018 21:02:05 +0000 (22:02 +0100)]
ash: add LINENO support
This patch is a backport from dash of the combination of:
[SHELL] Add preliminary LINENO support
[VAR] Fix varinit ordering that broke fc
[SHELL] Improve LINENO support
function old new delta
parse_command 1604 1677 +73
calcsize 156 223 +67
copynode 196 258 +62
evalcommand 1546 1606 +60
ash_main 1046 1103 +57
lookupvar 51 106 +55
evalcase 269 317 +48
evaltree 501 547 +46
evalfor 156 200 +44
evalsubshell 156 195 +39
raise_error_syntax 11 29 +18
varinit_data 120 132 +12
evalfun 270 280 +10
funcline - 4 +4
cmdtxt 569 572 +3
trapcmd 306 304 -2
ash_vmsg 153 150 -3
startlinno 4 - -4
funcnest 4 - -4
xxreadtoken 263 250 -13
readtoken1 2645 2602 -43
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 14/4 up/down: 598/-69) Total: 529 bytes
text data bss dec hex filename
932834 481 6864 940179 e5893 busybox_old
933375 481 6856 940712 e5aa8 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 27 Jan 2018 19:46:45 +0000 (20:46 +0100)]
hush: add HUSH_BASH_SOURCE_CURDIR config option, to be on par with ash
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 27 Jan 2018 18:05:59 +0000 (19:05 +0100)]
hush: fix dot builtin to not search current directory
function old new delta
builtin_source 182 209 +27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 27 Jan 2018 18:04:08 +0000 (19:04 +0100)]
tar: accomodate non-terminated tar.chksum fields as seen from github.com
function old new delta
get_header_tar 1783 1696 -87
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 26 Jan 2018 14:15:43 +0000 (15:15 +0100)]
ash: introduce a config option to search current directory for sourced files
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 25 Jan 2018 23:21:25 +0000 (00:21 +0100)]
gzip: fix debug code. Closes 10681
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Nicholas Clark [Thu, 25 Jan 2018 18:00:19 +0000 (19:00 +0100)]
dd: add 'fullblock' iflag
Adds a fullblock iflag for improved compatibility with GNU dd.
The new iflag can be used to ensure that dd calls retrieve the
expected amount of data when reading from pipes or unusual
filesystems.
function old new delta
packed_usage 32249 32334 +85
dd_main 1582 1632 +50
static.iflag_words 12 22 +10
------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 145/0) Total: 145 bytes
Signed-off-by: Nicholas Clark <nicholas.clark@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>