Denys Vlasenko
e5d5f5b9a7
hexdump: fix short file of zero butes treated as dup
...
function old new delta
bb_dump_dump 1466 1491 +25
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-07-03 16:29:06 +02:00
Denys Vlasenko
335766602b
testsuite/mount.tests: fix false positive
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-06-28 14:10:00 +02:00
Denys Vlasenko
57dbe4d5ac
libbb: crypt() in newer glibc requires include <crypt.h>
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-06-27 09:45:20 +02:00
Kartik Agaram
43b17b1cd0
restore documentation on the build config language
...
Kconfig-language.txt was deleted in commit 4fa499a17b
back in 2006.
Move to docs/ as suggested by Xabier Oneca:
http://lists.busybox.net/pipermail/busybox/2014-May/080914.html
Also update references to it everywhere.
Signed-off-by: Kartik Agaram <akkartik@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-06-06 15:16:48 +02:00
Denys Vlasenko
bf7f103ffb
whitespace fix
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-05-26 17:42:00 +02:00
Denys Vlasenko
747162109f
realpath,readlink -f: coreutils compat, closes 11021
...
function old new delta
xmalloc_realpath_coreutils - 121 +121
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-05-24 17:31:00 +02:00
Denys Vlasenko
2aeb201c97
libbb: new option FEATURE_ETC_SERVICES: if off, /etc/services reads often avoided
...
In practice, "wget http://host.com/ " always uses port 80.
People explicitly set non-standard ports via options or parameters
("telnet 1.2.3.4 567" or "telnet 1.2.3.4 ftp") instead of modifying
/etc/services.
function old new delta
telnet_main 1466 1464 -2
rdate_main 215 198 -17
fakeidentd_main 269 252 -17
parse_url 459 392 -67
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-103) Total: -103 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-17 12:43:54 +02:00
Denys Vlasenko
058a153b69
less: fix fallout from "use common routine to set raw termios"
...
Testcase: (sleep 10; ls) | busybox less
[...]
~ LICENSE
~ Makefile
~ Makefile.custom
~ Makefile.flags
[...]
less did not want this part:
+ /* dont convert NL to CR+NL on output */
+ newterm->c_oflag &= ~(ONLCR);
function old new delta
get_termios_and_make_raw 108 115 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-16 10:24:48 +02:00
Denys Vlasenko
38ccd6af8a
bzip2: fix two crashes on corrupted archives
...
As it turns out, longjmp'ing into freed stack is not healthy...
function old new delta
unpack_usage_messages - 97 +97
unpack_bz2_stream 369 409 +40
get_next_block 1667 1677 +10
get_bits 156 155 -1
start_bunzip 212 183 -29
bb_show_usage 181 120 -61
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/3 up/down: 147/-91) Total: 56 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08 20:05:04 +02:00
Denys Vlasenko
17058a06c4
libbb: switch bb_ask_noecho() to "mallocing" string return API
...
function old new delta
bb_ask_noecho 313 330 +17
get_cred_or_die 125 115 -10
passwd_main 995 958 -37
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 17/-47) Total: -30 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07 15:50:30 +02:00
Denys Vlasenko
bae8fc4436
xargs: use bb_ask_y_confirmation_FILE() instead of homegrown copy
...
function old new delta
bb_ask_y_confirmation_FILE - 83 +83
inetd_main 2033 2043 +10
udhcp_send_kernel_packet 295 301 +6
rmescapes 306 310 +4
send_tree 353 355 +2
i2cdetect_main 674 672 -2
confirm_or_abort 43 38 -5
get_terminal_width_height 242 234 -8
bb_ask_y_confirmation 76 10 -66
xargs_main 823 755 -68
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/5 up/down: 105/-149) Total: -44 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07 15:23:10 +02:00
Denys Vlasenko
77cb6b99a4
libbb: rename bb_ask -> bb_ask_noecho, bb_ask_confirmation -> bb_ask_y_confirmation
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07 15:08:12 +02:00
Denys Vlasenko
2f094ae821
telnet: move winsize detection closer to I/O loop, delete non-functioning debug code
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07 15:02:20 +02:00
Denys Vlasenko
2ab994f707
placate gcc-8.0.1 warnings
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-06 18:26:33 +02:00
Denys Vlasenko
f5018dac21
hush: fix "unset PS1/PS2", and put them into initial variable set
...
"unset PS1/PS2" causes prompts to be empty strings
function old new delta
hush_main 1031 1089 +58
goto_new_line 27 33 +6
fgetc_interactive 244 245 +1
unset_local_var 155 149 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 65/-6) Total: 59 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-06 17:58:21 +02:00
Denys Vlasenko
899ae5337a
libbb: new function bb_die_memory_exhausted
...
function old new delta
bb_die_memory_exhausted - 10 +10
xstrdup 28 23 -5
xsetenv 27 22 -5
xrealloc 32 27 -5
xputenv 22 17 -5
xmalloc 30 25 -5
xfdopen_helper 40 35 -5
xasprintf 44 39 -5
wget_main 2387 2382 -5
open_socket 54 49 -5
glob_brace 419 414 -5
bb_get_chunk_from_file 146 141 -5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/11 up/down: 10/-55) Total: -45 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-01 19:59:37 +02:00
Quentin Rameau
e2afae6303
sed: prevent overflow of length from bb_get_chunk_from_file
...
This fragment did not work right:
temp = bb_get_chunk_from_file(fp, &len);
if (temp) {
/* len > 0 here, it's ok to do temp[len-1] */
char c = temp[len-1];
With "int len" _sign-extending_, temp[len-1] can refer to a wrong location
if len > 0x7fffffff.
Signed-off-by: Quentin Rameau <quinq@fifth.space>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-01 19:51:14 +02:00
Quentin Rameau
2da9724b56
libbb: remove unnecessary variable in xmalloc_fgets
...
Signed-off-by: Quentin Rameau <quinq@fifth.space>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-01 19:45:36 +02:00
Denys Vlasenko
e4defe826b
libbb: use BUILD_BUG_ON in utoa_to_buf()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-03-28 17:12:56 +02:00
Sean MacLennan
d9aabfe578
make busybox more portable
...
Move some distro specific include files into the appropriate #ifdef
blocks to make the code more portable.
Signed-off-by: Sean MacLennan <seanm@seanm.ca>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-03-04 23:15:59 +01:00
Andy Shevchenko
cc222747ae
libbb: Use return value from is_prefixed_with()
...
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-5 (-5)
Function old new delta
skip_dev_pfx 30 25 -5
Total: Before=779966, After=779961, chg -0.00%
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-27 13:35:40 +01:00
Ron Yorston
23286900da
lineedit: allow window size tracking to be disabled
...
function old new delta
lineedit_read_key 269 261 -8
win_changed 47 - -47
read_line_input 3884 3821 -63
cmdedit_setwidth 63 - -63
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/2 up/down: 0/-181) Total: -181 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-25 20:09:54 +01:00
Denys Vlasenko
2af5e3fac3
libbb: compile capability code only if FEATURE_SETPRIV_CAPABILITIES or RUN_INIT
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-21 20:13:39 +01:00
Denys Vlasenko
edccc982e5
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>
2018-02-13 16:48:52 +01:00
Denys Vlasenko
ba3b9dbf06
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>
2018-02-11 14:55:46 +01:00
Denys Vlasenko
47529d3f16
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>
2018-02-07 23:48:34 +01:00
Denys Vlasenko
ab843e3244
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>
2018-02-07 17:47:39 +01:00
Denys Vlasenko
1267770a9d
fix compile failure in previous commit
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-06 18:01:39 +01:00
Denys Vlasenko
5cdd120f0c
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>
2018-02-06 17:59:32 +01:00
Denys Vlasenko
ddacb03e87
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>
2018-02-01 10:56:19 +01:00
Denys Vlasenko
cca7c611f2
which: fix TODO with NOFORK+malloc_failure misbehaving
...
function old new delta
find_executable 86 104 +18
which_main 202 194 -8
executable_exists 66 51 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 18/-23) Total: -5 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-01-12 13:21:33 +01:00
Denys Vlasenko
7367a949a6
libbb: compile obscure() only if FEATURE_PASSWD_WEAK_CHECK=y
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-01-04 15:21:25 +01:00
Denys Vlasenko
82d1c1f84a
randomconfig fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-12-31 17:30:02 +01:00
Denys Vlasenko
0a67722140
lineedit: get terminal width before printing prompt
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-11-08 13:38:12 +01:00
Denys Vlasenko
c3797d40a1
lineedit: do not tab-complete any strings which have control characters
...
function old new delta
add_match 41 68 +27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-11-08 12:35:02 +01:00
James Clarke
518fb3ba19
udp_io, traceroute: Standardise IPv6 PKTINFO handling to be portable
...
The current standard (RFC 3542) is for IPV6_RECVPKTINFO to be given to
setsockopt, and IPV6_PKTINFO to be used as the packet type. Previously,
RFC 2292 required IPV6_PKTINFO to be used for both, but RFC 3542
re-purposed IPV6_PKTINFO when given to setsockopt. The special
Linux-specific IPV6_2292PKTINFO has the same semantics as IPV6_PKTINFO
in RFC 2292, but was introduced at the same time as IPV6_RECVPKTINFO.
Therefore, if we have IPV6_RECVPKTINFO available, we can use the RFC
3542 style, and if not, we assume that only the RFC 2292 API is
available, using IPV6_PKTINFO for both.
Signed-off-by: James Clarke <jrtc27@jrtc27.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-30 16:06:50 +01:00
James Clarke
24e17b4385
xfuncs: Handle missing non-POSIX termios constants
...
Signed-off-by: James Clarke <jrtc27@jrtc27.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-30 15:18:32 +01:00
Avi Halachmi
0fd5dbba8f
lineedit: improve multiline PS1 - redraw using last PS1 line. Closes 10381
...
This patch only affects prompts with newlines.
We redraw the prompt [+ input] occasionally, e.g. during tab completion,
history browsing or search, etc, and we expect it to align with prior
redraws, such that the visible effect is that only the input changes.
With multi-line PS1, redraw always printed the prompt some lines below
the old one, which resulted in terminal scroll during every redraw.
Now we only redraw the last PS1 line, so vertical alignment is easier to
manage (we already calculated it using only the last line, but re-drew
all lines - that was the culprit), which fixes those extra scrolls.
Notes:
- We now use the full prompt for the initial draw, after clear-screen (^L),
and after tab-completion choices are displayed. Everything else now
redraws using the last/sole prompt line.
- During terminal resize we now only redraw the last[/sole] prompt line,
which is arguably better because it's hard to do right (and we never did).
- Good side effect for reverse-i-search: its prompt now replaces only the
last line of the original prompt - like other shells do.
function old new delta
put_prompt_custom - 66 +66
draw_custom - 66 +66
parse_and_put_prompt 766 806 +40
read_line_input 3867 3884 +17
input_tab 1069 1076 +7
cmdedit_setwidth 61 63 +2
redraw 59 47 -12
put_prompt 46 - -46
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 4/1 up/down: 198/-58) Total: 140 bytes
Signed-off-by: Avi Halachmi <avihpit@yahoo.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-12 18:26:13 +02:00
Denys Vlasenko
2ab9403119
whitespace and comment format fixes, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-05 15:33:28 +02:00
Denys Vlasenko
a02a4e9830
whitespace and comment format fixes, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-05 15:19:25 +02:00
Denys Vlasenko
416899fca6
do not include <sys/stat.h> just before "libbb.h", it's there already
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-05 14:41:36 +02:00
Denys Vlasenko
ebe6d9d875
whitespace and comment format fixes, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-10-05 14:40:24 +02:00
Denys Vlasenko
0c4dbd481a
regularize format of source file headers, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-18 16:28:43 +02:00
Denys Vlasenko
7735e52df4
Clarify OPOST bit meaning
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-15 17:19:55 +02:00
Denys Vlasenko
aaaaaa5ad6
less,microcom,lineedit: use common routine to set raw termios
...
function old new delta
get_termios_and_make_raw - 139 +139
xget1 39 8 -31
read_line_input 3912 3867 -45
less_main 2525 2471 -54
set_termios_to_raw 116 36 -80
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/4 up/down: 139/-210) Total: -71 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-15 17:14:01 +02:00
Denys Vlasenko
8187e01438
*: use ESC define instead of "\033"; use ESC[m instead of ESC[0m
...
text data bss dec hex filename
922535 481 6832 929848 e3038 busybox_old
922534 481 6832 929847 e3037 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-13 22:48:30 +02:00
Denys Vlasenko
6016181b68
hush: GETOPT_RESET() _after_ getopts too.
...
NOEXEC'ed applets which use getopt() need this.
function old new delta
builtin_getopts 403 413 +10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 14:32:17 +02:00
Denys Vlasenko
200bcc851a
run-init: new applet
...
function old new delta
switch_root_main 354 637 +283
drop_usermodehelper - 157 +157
cap_name_to_number - 77 +77
packed_usage 31707 31743 +36
applet_names 2665 2674 +9
applet_main 1544 1548 +4
applet_install_loc 193 194 +1
setpriv_main 933 928 -5
getcaps 131 122 -9
parse_cap 117 29 -88
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 5/3 up/down: 567/-102) Total: 465 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-21 19:30:01 +02:00
Denys Vlasenko
44b3f2ffbc
libbb: move capability names code to libbb
...
function old new delta
cap_name_to_number - 77 +77
parse_cap 117 29 -88
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/1 up/down: 77/-88) Total: -11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-21 02:14:19 +02:00
Denys Vlasenko
bc9bbeb2b8
libarchive: do not extract unsafe symlinks unless $EXTRACT_UNSAFE_SYMLINKS=1
...
function old new delta
unsafe_symlink_target - 147 +147
unzip_main 2711 2732 +21
copy_file 1657 1678 +21
tar_main 999 971 -28
data_extract_all 1038 984 -54
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/2 up/down: 189/-82) Total: 107 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-10 11:52:42 +02:00