Commit Graph

15222 Commits

Author SHA1 Message Date
Denys Vlasenko
a6a3ad3273 udhcpc: paranoia when using kernel UDP mode for sending renew: server ID may be bogus
With new code, we request that target IP (server ID) must be directly reachable.
If it's not, this happens:

udhcpc: waiting 2000 seconds
udhcpc: entering listen mode: kernel
udhcpc: opening listen socket on *:68 wlan0
udhcpc: entering renew state
udhcpc: sending renew to 1.1.1.1
udhcpc: send: Network is unreachable
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.1.1.1 needs routing, this is fishy!
udhcpc: entering rebinding state
udhcpc: entering listen mode: raw
udhcpc: created raw socket
udhcpc: sending renew to 0.0.0.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ going to use broadcast

which is the desired behavior. Before the patch, packet to 1.1.1.1 was routed
over eth0 (!) and maybe even into Internet (!!!).

function                                             old     new   delta
udhcpc_main                                         2752    2763     +11
udhcp_send_kernel_packet                             295     301      +6
send_renew                                            82      84      +2
send_packet                                          166     168      +2
bcast_or_ucast                                        23      25      +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 23/0)               Total: 23 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-29 16:02:11 +02:00
Denys Vlasenko
2b9acc60c0 udhcpc[6]: initialize entire sockaddr_ll
I see random field values like sll_hatype=0x267 when I strace.
They seem to not matter, but just in case they sometimes do,
let's at least have deterministic values (via memset(0)).

function                                             old     new   delta
change_listen_mode                                   308     322     +14

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-29 14:22:43 +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
b63afead44 ip,ip*: make them NOEXEC
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-18 15:45:13 +02:00
Denys Vlasenko
c3e60e1e9a update NOFORK_NOEXEC.lst
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-18 14:34:15 +02:00
Denys Vlasenko
a6390ed77e httpd: fix handling of range requests
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-18 13:09:11 +02:00
Denys Vlasenko
3f5ba0c872 stty: add cmspar, flusho, extproc attributes
function                                             old     new   delta
mode_info                                            688     704     +16
mode_name                                            502     516     +14
wrapf                                                162     157      -5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 30/-5)              Total: 25 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-18 12:17:20 +02:00
Denys Vlasenko
3c34f681b3 netcat: net applet (alias to nc)
function                                             old     new   delta
packed_usage                                       31807   31856     +49
applet_names                                        2701    2708      +7
applet_main                                         1560    1564      +4
applet_install_loc                                   195     196      +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 61/0)               Total: 61 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-15 18:55:53 +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
e58b44755d hexedit: code shrink
function                                             old     new   delta
hexedit_main                                        1171    1170      -1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-15 15:23:47 +02:00
Denys Vlasenko
f3fa865258 hexedit: fixes to "goto address" code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-15 14:00:41 +02:00
Denys Vlasenko
9a4100cf53 hexedit: position in correct column on "goto" command
function                                             old     new   delta
hexedit_main                                        1169    1202     +33

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-14 13:57:07 +02:00
Denys Vlasenko
44cb1666ef hexedit: code shrink
function                                             old     new   delta
hexedit_main                                        1176    1169      -7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-14 11:20:36 +02:00
Denys Vlasenko
8838c6d53e hexdump: code shrink
function                                             old     new   delta
remap                                                173     178      +5
move_mapping_lower                                   107     109      +2
move_mapping_further                                 141     143      +2
hexedit_main                                        1191    1176     -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 9/-15)              Total: -6 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-14 11:01:37 +02:00
Denys Vlasenko
d54f58d487 hexedit: implement "[enter] goto offset" key
This is a must if you need to edit sector 123456789999 on your /dev/disk.

   text	   data	    bss	    dec	    hex	filename
 922745	    481	   6832	 930058	  e310a	busybox_old
 923023	    481	   6832	 930336	  e3220	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-14 10:51:12 +02:00
Denys Vlasenko
363fb5ec40 hexedit: restore screen on exit
function                                             old     new   delta
hexedit_main                                         998    1082     +84
restore_term                                           -      29     +29
remap                                                168     173      +5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/0 up/down: 118/0)             Total: 118 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-14 09:42:40 +02:00
Denys Vlasenko
d72e804e6d hexedit: optimize output buffering
function                                             old     new   delta
hexedit_main                                         970     998     +28

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-14 00:04:16 +02:00
Denys Vlasenko
62643017c3 hexedit: implement page up/down
function                                             old     new   delta
hexedit_main                                         924     970     +46

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-13 23:02:51 +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
136946c3ea hexedit: smarter redraw
function                                             old     new   delta
format_line                                          197     209     +12
hexedit_main                                         930     924      -6
redraw_cur_line                                      104      94     -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 12/-16)             Total: -4 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-13 21:38:55 +02:00
Denys Vlasenko
73af705628 hexedit: new applet
function                                             old     new   delta
hexedit_main                                           -     930    +930
format_line                                            -     197    +197
remap                                                  -     168    +168
move_mapping_further                                   -     141    +141
move_mapping_lower                                     -     107    +107
redraw_cur_line                                        -     104    +104
packed_usage                                       31802   31812     +10
applet_names                                        2688    2696      +8
applet_main                                         1552    1556      +4
applet_suid                                           97      98      +1
applet_install_loc                                   194     195      +1
------------------------------------------------------------------------------
(add/remove: 7/0 grow/shrink: 5/0 up/down: 1671/0)           Total: 1671 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-13 19:20:27 +02:00
Denys Vlasenko
b5a0396716 networking/interface.c: remove superfluous "& 0377"
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-12 17:54:28 +02:00
Denys Vlasenko
b278ac0e60 setfattr: new applet
function                                             old     new   delta
setfattr_main                                          -     189    +189
packed_usage                                       31516   31588     +72
setxattr                                               -      53     +53
lsetxattr                                              -      53     +53
removexattr                                            -      37     +37
lremovexattr                                           -      37     +37
applet_names                                        2649    2658      +9
find_applet_by_name                                  124     128      +4
applet_main                                         1532    1536      +4
------------------------------------------------------------------------------
(add/remove: 7/0 grow/shrink: 4/0 up/down: 458/0)             Total: 458 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-08 20:55:59 +02:00
Denys Vlasenko
d134aa9341 build system: fix a compiler warning
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-07 14:50:00 +02:00
Denys Vlasenko
0b1c629342 build system: fix "allnoconfig" to clear all options. Closes 10296
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-07 14:40:28 +02:00
Denys Vlasenko
9d858f5717 chat: do not die when HANGUP param is missing. Closes 10016
function                                             old     new   delta
chat_main                                           1356    1379     +23

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-05 19:16:40 +02:00
Denys Vlasenko
94aaf4b5d3 httpd: skip "Status: " from CGI, including space. Closes 10291
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-01 17:06:12 +02:00
Denys Vlasenko
e39da802dd klibc-utils: add ipconfig.c work-in-progress
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-09-01 12:48:15 +02:00
Denys Vlasenko
58bf902a94 xargs: fix a thinko in last commit
IF_FEATURE_XARGS_SUPPORT_PARALLEL(char *opt_a = NULL;)
	is replaced with
IF_FEATURE_XARGS_SUPPORT_ARGS_FILE

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-30 13:44:27 +02:00
Johannes Schindelin
f8ee849ecd xargs: support -a FILE
The GNU-specific option -a lets xargs read the arguments from a file
rather than from stdin.

This is particularly convenient when debugging in gdb interactively,
and it might be of more general use.

function                                             old     new   delta
xargs_main                                           788     823     +35
packed_usage                                       31683   31671     -12

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 21:05:40 +02:00
Denys Vlasenko
f41ffff2dc klibc-utils: remove accidental "or later" licensing wording.
I (slightly) prefer my code to be under "GPLv2 only" license.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 19:44:45 +02:00
Denys Vlasenko
3256111efb udhcpc: show only short opts in --help text
function                                             old     new   delta
packed_usage                                       31615   31501    -114

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 16:51:17 +02:00
Denys Vlasenko
f27e150fa6 i2c_tools: tweak --help text
function                                             old     new   delta
packed_usage                                       31624   31615      -9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 15:44:01 +02:00
Denys Vlasenko
0180b57aaf setpriv: placete "declaration of 'index' shadows a global declaration" warning
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 15:34:38 +02:00
Denys Vlasenko
9fed83a7cc hush: fix false positive in unset.tests
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 14:35:58 +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
55af51c66d hush: reuse "OPTIND=..." string
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 13:48:49 +02:00
Denys Vlasenko
238ff98bb8 hush: fix "getopts" builtin to not be upset by other builtins calling getopt()
function                                             old     new   delta
builtin_getopts                                      363     403     +40
unset_local_var_len                                  185     215     +30
set_local_var                                        440     466     +26
reset_traps_to_defaults                              151     157      +6
pseudo_exec_argv                                     320     326      +6
install_special_sighandlers                           52      58      +6
pick_sighandler                                       62      65      +3
execvp_or_die                                         85      88      +3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 8/0 up/down: 120/0)             Total: 120 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 13:38:30 +02:00
Bartosz Golaszewski
0d1eaf407c i2c-tools: don't include linux/i2c-dev.h
Installing headers from upstream i2c-tools makes it impossible to
build the busybox version due to redefined symbols. This is caused by
the fact that linux/i2c-dev.h from i2c-tools overwrites the one from
linux uapi and defines symbols already defined by linux' linux/i2c.h.

Drop this include and simply re-implement the relevant defines from
linux/i2c-dev.h in miscutils/i2c-tools.c.

Tested by building on systems with and without i2c-tools headers.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-29 12:31:22 +02:00
Bartosz Golaszewski
3a7b0fb7b6 i2c-tools: remove unneeded include
We no longer use common_bufsiz1 in i2c-tools.

Don't include common_bufsiz.h.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-28 15:35:26 +02:00
Ron Yorston
0b6ec06beb kill: add '--' option to separate options from arguments
Using a negative pid to send TERM to a process group results in an
obscure error:

   $ ./busybox kill -12345
   kill: bad signal name '12345'

This is intended. Manpage says:
ARGUMENTS
       pid    Each pid can be one of four things:
...
              -n     where n is larger than 1.  All processes in process group
                     n are signaled.  When an argument of  the  form  '-n'  is
                     given,  and it is meant to denote a process group, either
                     a signal must be specified first, or the argument must be
                     preceded  by a '--' option, otherwise it will be taken as
                     the signal to send.

However, we did not support "--". Add this capability to BusyBox.

function                                             old     new   delta
kill_main                                            993     999      +6

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-28 14:03:13 +02:00
Denys Vlasenko
14551b7036 xargs: optional support for -P NUM. Closes 9511
Based on patch by Johannes Schindelin <johannes.schindelin@gmx.de>

function                                             old     new   delta
xargs_exec                                             -     294    +294
packed_usage                                       31757   31772     +15
xargs_main                                           787     719     -68
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 309/-68)           Total: 241 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-24 13:23:54 +02:00
Denys Vlasenko
b270be3fb3 xargs: code shrink
function                                             old     new   delta
xargs_main                                           827     787     -40

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-24 11:21:27 +02:00
Denys Vlasenko
9c47c43e07 sed: in '/regexp/cmd1;//cmd2', cmd2 should use the same regexp as cmd1
function                                             old     new   delta
get_address                                          165     211     +46

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-23 17:56:03 +02:00
Denys Vlasenko
8b77a9ea81 *: fix fallout from opt_complementary conversion
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-23 15:08:25 +02:00
Denys Vlasenko
12ffefb549 ash: more s/error/perror/ for better error reporting
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-23 14:52:56 +02:00
Johannes Schindelin
687aac056d ash: when cd fails, say why
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-23 14:48:25 +02:00
Johannes Schindelin
20a63b2c18 ash: report reason when a script file could not be opened
It is always nicer to give the user some sort of indication why an
operation failed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-23 14:47:45 +02:00
Ron Yorston
6bafcfb67a tar: fix handling of first argument without '-'
The following no longer works as expected:

   $ ./busybox tar xfz test.tgz
   tar: can't open 'z': No such file or directory

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-23 12:19:44 +02:00