Commit Graph

16704 Commits

Author SHA1 Message Date
Ron Yorston
943e81f5db ash: only catch unexpected exceptions in PS1 expansion
Commit d1a2fa2a4 (ash: catch error in arithmetic expansion in PS1)
catches all exceptions raised by expandarg().  Some exceptions, such as
the EXEXIT raised when command expansion is used, are expected:

   export PS1='$(echo "$ ")'

These should be processed normally or the shell hangs at the prompt.

function                                             old     new   delta
expandstr                                            344     353      +9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 9/0)                 Total: 9 bytes

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-31 13:44:32 +02:00
Denys Vlasenko
dac0a7d234 unicode: code shrink in character width determination
function                                             old     new   delta
bb_wcwidth                                           267     238     -29

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-23 11:26:54 +02:00
Denys Vlasenko
4767a5375e libbb: include <crypt.h> only if necessary
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-16 15:09:06 +02:00
Denys Vlasenko
b694608429 ntpd: add comment about mode6, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-02 15:03:47 +02:00
Denys Vlasenko
c0961e09b2 ntpd: commonalize message strings
function                                             old     new   delta
recv_and_process_peer_pkt                            961     973     +12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 12/0)               Total: 12 bytes
   text	   data	    bss	    dec	    hex	filename
 953108	    481	   7288	 960877	  ea96d	busybox_old
 953086	    481	   7288	 960855	  ea957	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-02 13:10:19 +02:00
James Byrne
6937487be7 libbb: reduce the overhead of single parameter bb_error_msg() calls
Back in 2007, commit 0c97c9d437 ("'simple' error message functions by
Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower
overhead call to bb_perror_msg() when only a string was being printed
with no parameters. This saves space for some CPU architectures because
it avoids the overhead of a call to a variadic function. However there
has never been a simple version of bb_error_msg(), and since 2007 many
new calls to bb_perror_msg() have been added that only take a single
parameter and so could have been using bb_simple_perror_message().

This changeset introduces 'simple' versions of bb_info_msg(),
bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and
bb_herror_msg_and_die(), and replaces all calls that only take a
single parameter, or use something like ("%s", arg), with calls to the
corresponding 'simple' version.

Since it is likely that single parameter calls to the variadic functions
may be accidentally reintroduced in the future a new debugging config
option WARN_SIMPLE_MSG has been introduced. This uses some macro magic
which will cause any such calls to generate a warning, but this is
turned off by default to avoid use of the unpleasant macros in normal
circumstances.

This is a large changeset due to the number of calls that have been
replaced. The only files that contain changes other than simple
substitution of function calls are libbb.h, libbb/herror_msg.c,
libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c,
networking/udhcp/common.h and util-linux/mdev.c additonal macros have
been added for logging so that single parameter and multiple parameter
logging variants exist.

The amount of space saved varies considerably by architecture, and was
found to be as follows (for 'defconfig' using GCC 7.4):

Arm:     -92 bytes
MIPS:    -52 bytes
PPC:   -1836 bytes
x86_64: -938 bytes

Note that for the MIPS architecture only an exception had to be made
disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h)
because it made these files larger on MIPS.

Signed-off-by: James Byrne <james.byrne@origamienergy.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-02 11:35:03 +02:00
Denys Vlasenko
caecfdc20d ntpd: abort if argvs are (unexpectedly) given
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-07-02 11:28:18 +02:00
Lukas Rusak
9663bbd17b free: include SReclaimable in cached value
I noticed that the 'used' values from busybox free and
procps-ng free differed so I looked into why. It turns
out that procps-ng uses the "SReclaimable" value as
part of the cached value.

This was changed in
procps-ng commit 05d751c4f076a2f0118b914c5e51cfbb4762ad8e

function                                             old     new   delta
free_main                                            633     653     +20

Signed-off-by: Lukas Rusak <lorusak@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-25 18:53:10 +02:00
Denys Vlasenko
25a871fb40 libbb: deal with "declaration of 'link' shadows a global declaration" warning
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-25 18:51:00 +02:00
Denys Vlasenko
3a0eea0887 pidof: support "pidof /path/to/binary" case
function                                             old     new   delta
find_pid_by_name                                     230     227      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-15 18:35:39 +02:00
Denys Vlasenko
070aa61747 readlink,realpath: fix a case with a symplink, closes 11021
function                                             old     new   delta
xmalloc_realpath_coreutils                           125     201     +76

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-13 17:09:05 +02:00
Denys Vlasenko
84d38500a7 udhcpc: fix comment, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-13 10:02:03 +02:00
Denys Vlasenko
72f12acb6b udhcpc6: fix aliasing warning
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-11 18:18:48 +02:00
Martin Lewis
d378fa170a dhcpc.c: Added support for relay server parameter.
Resolved a TODO by adding support for gateway_nip parameter.

function                                             old     new   delta
udhcp_run_script                                     792     835     +43

Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-11 17:18:28 +02:00
Denys Vlasenko
eda5142b5c Start 1.32.0 development cycle
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-10 12:52:16 +02:00
Denys Vlasenko
0f1369f0c5 Bump version to 1.31.0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-10 11:53:46 +02:00
Denys Vlasenko
3b69ba799f mount,losetup: use /dev/loop-control is it exists
function                                             old     new   delta
get_free_loop                                          -      58     +58
set_loop                                             597     649     +52
losetup_main                                         482     476      -6
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 110/-6)            Total: 104 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-09 23:20:49 +02:00
Aitor Esteve Alvarado
7b6d4f50c9 start-stop-daemon: change priority before dropping privileges
Currently start-stop-daemon fails when using both the -c option (set uid)
and -N option (set niceness/priority) as it first drops privileges and then
tries to increase the priority. This patch changes the order of execution.

Signed-off-by: Aitor Esteve Alvarado <aesteve@singularaircraft.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-09 13:47:49 +02:00
Denys Vlasenko
894f0a3235 tftp: allow -lc and -cl options
function                                             old     new   delta
tftp_main                                            394     396      +2

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-09 12:41:17 +02:00
Denys Vlasenko
94ce1c0ebb tftpd: revert erroneous change
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-09 11:32:23 +02:00
Denys Vlasenko
3b8025f132 tftp: optional tftp-hpa compat
function                                             old     new   delta
tftp_main                                            276     394    +118

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-09 11:12:02 +02:00
Denys Vlasenko
48eebc8d5c expand: add commented-out code to handle NULs
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-09 09:16:03 +02:00
Denys Vlasenko
92549250f3 expand,unexpand: drop broken test, add FIXME comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 13:04:44 +02:00
Denys Vlasenko
22cc92833f awk: fix testsuite
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 13:00:46 +02:00
Denys Vlasenko
04a0b7f080 bc: placate compiler warnings
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 12:58:16 +02:00
Denys Vlasenko
fa182a355a vi: code shrink
function                                             old     new   delta
colon                                               2852    2846      -6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 12:57:07 +02:00
Denys Vlasenko
7a4e55422a bc: placate compiler warnings
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 12:39:30 +02:00
Denys Vlasenko
3e463e1cfd brctl: placate compiler warnings
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 12:35:06 +02:00
Denys Vlasenko
023ae75fc6 blockdev: add usage comment, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-08 08:57:11 +02:00
Denys Vlasenko
1230aec77a httpd: .js is "application/javascript", not "application/x-javascript"
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-07 12:32:30 +02:00
Denys Vlasenko
a5c5dc6f0b passwd: do not set 0 as date of last password change, closes 11951
function                                             old     new   delta
update_passwd                                       1491    1505     +14

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-07 12:30:23 +02:00
Denys Vlasenko
5c317c0b8d httpd: add js to built in MIME types list
Firefox needs this to execute .js

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-07 09:32:03 +02:00
Vicente Jimenez Aguilar
09b25ecc51 httpd: add svg to built in MIME types list
Signed-off-by: Vicente Jimenez Aguilar <googuy@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-07 09:31:57 +02:00
Denys Vlasenko
ed042010dc lpd: avoid SEGVing on immediate EOF from peer
Patch by Luís Marques <luismarques@lowrisc.org>

function                                             old     new   delta
lpd_main                                             749     757      +8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-07 09:14:41 +02:00
Denys Vlasenko
45e3967c20 libbb: move netlink socket binding to the utility function
function                                             old     new   delta
create_and_bind_to_netlink                             -     134    +134
ifplugd_main                                        1117    1052     -65
uevent_main                                          399     306     -93
mdev_main                                            314     215     -99
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/3 up/down: 134/-257)         Total: -123 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-03 14:16:52 +02:00
Jan Klötzke
498cec202a mdev: add support to run as daemon
Adds the -d option to run mdev in daemon mode handling hotplug events
from the kernel like udev. If the system generates many hotplug events
this mode of operation will consume less resources than registering
mdev as hotplug helper or using the uevent applet.

function                                             old     new   delta
daemon_loop                                            -     152    +152
initial_scan                                           -     127    +127
open_mdev_log                                          -      85     +85
mdev_main                                            255     314     +59
packed_usage                                       33284   33316     +32
process_action                                      1051     992     -59
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 2/1 up/down: 455/-59)           Total: 396 bytes

Signed-off-by: Jan Klötzke <jan@kloetzke.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-03 13:24:49 +02:00
Jan Klötzke
728e53d388 mdev: use option parser helper
function                                             old     new   delta
process_action                                         -    1051   +1051
mdev_main                                           1324     255   -1069
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 1051/-1069)        Total: -18 bytes

Signed-off-by: Jan Klötzke <jan@kloetzke.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-03 13:00:47 +02:00
Jan Klötzke
d04b726173 mdev: move action processing into separate functions
This purely moves code from main() to separate functions for better
extensibility.

Signed-off-by: Jan Klötzke <jan@kloetzke.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-03 12:55:30 +02:00
Denys Vlasenko
f3634584d0 ash,hush: show 'c' in $- if run in "sh -c CMD"
function                                             old     new   delta
options                                              552     599     +47
expand_one_var                                      2375    2385     +10
optletters_optnames                                   60      64      +4
hush_main                                           1108    1111      +3
ash_main                                            1150    1152      +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 66/0)               Total: 66 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-03 12:21:04 +02:00
Denys Vlasenko
897475ab02 ash: allocate line editing structure only if needed
function                                             old     new   delta
optschanged                                           91     128     +37
historycmd                                            13      17      +4
setcmd                                                80      78      -2
ash_main                                            1167    1150     -17
options                                              576     552     -24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/3 up/down: 41/-43)             Total: -2 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-06-01 16:35:09 +02:00
Denys Vlasenko
6eb6e6a1e9 dhcp: downgrade "got raw socket fd" message to log3, make log2 default max
log3 messages are very much redundant

function                                             old     new   delta
change_listen_mode                                   322     302     -20

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-31 23:52:16 +02:00
Denys Vlasenko
65c34c52df dhcp: get rid of static data signal_pipe
function                                             old     new   delta
udhcp_sp_setup                                        65     110     +45
udhcp_sp_fd_set                                       60      59      -1
udhcpd_main                                         1442    1437      -5
udhcpc_main                                         2684    2679      -5
signal_pipe                                            8       -      -8
packed_usage                                       33292   33284      -8
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/4 up/down: 45/-27)             Total: 18 bytes
   text	   data	    bss	    dec	    hex	filename
 952746	    481	   7296	 960523	  ea80b	busybox_old
 952768	    481	   7288	 960537	  ea819	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-31 23:39:22 +02:00
Denys Vlasenko
91755cb16d udhcp: rename server_config to server_data
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-30 16:23:34 +02:00
Jack O'Sullivan
726cbb1be8 losetup: Add partition scanning option
Add -P option from util-linux losetup to scan for partitions.

function                                             old     new   delta
losetup_main                                         449     482     +33
packed_usage                                       33264   33292     +28
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 61/0)               Total: 61 bytes

Signed-off-by: Jack O'Sullivan <jackos1998@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-30 16:22:52 +02:00
Denys Vlasenko
bcb1fc3e6c udhcp: rename client_config to client_data, server_config to server_data
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 15:03:05 +02:00
Martin Lewis
818d9e02f2 udhcpc6: Fixed aliasing compilation error
Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 14:24:32 +02:00
Denys Vlasenko
8b35f207bb shell: move all definitions of strto_arith_t() together
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 14:02:10 +02:00
Denys Vlasenko
9501bc7da5 ls: fix SEGV when --color is used and ENABLE_LS_COLOR=n
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 13:53:41 +02:00
Denys Vlasenko
b2c123d484 testsuite: fix bunzip2.tests expectations
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 13:51:41 +02:00
Denys Vlasenko
eda83c9e69 comment fix
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 13:46:49 +02:00