Denys Vlasenko [Tue, 3 Mar 2015 12:10:30 +0000 (13:10 +0100)]
inetd: fix order of array index check and array access
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 2 Mar 2015 19:59:13 +0000 (20:59 +0100)]
ntpd: chnage help text about -l to say that it doesn't disable client code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 2 Mar 2015 16:39:13 +0000 (17:39 +0100)]
runsvdir: if pid==1, also intercept SIGINT for -s SCRIPT
function old new delta
runsvdir_main 1057 1064 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 2 Mar 2015 16:38:18 +0000 (17:38 +0100)]
runsvdir: do not block SIGCHLD around poll/sleep
There is no reason to do so. We do not even have SIGCHLD handler.
function old new delta
runsvdir_main 1077 1057 -20
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 2 Mar 2015 16:37:31 +0000 (17:37 +0100)]
runsvdir: (almost) close a signal race
We could lose a signal while processing previous one
function old new delta
runsvdir_main 1088 1077 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Serj Kalichev [Mon, 23 Feb 2015 14:26:47 +0000 (15:26 +0100)]
acpid: fix logging
Without this patch acpid can't log the events at all. Moreover it tries
to truncate log file every time.
Signed-off-by: Serj Kalichev <serj.kalichev@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 23 Feb 2015 14:25:58 +0000 (15:25 +0100)]
ls: heed compiler warning
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 21 Feb 2015 16:08:35 +0000 (17:08 +0100)]
modinfo: fix fallout from basename removal
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Tito Ragusa [Thu, 19 Feb 2015 21:02:59 +0000 (22:02 +0100)]
libpwdgrp: fix thinko in getpwnam
function old new delta
parse_file - 64 +64
getXXnam_r 162 138 -24
getXXnam 90 50 -40
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 64/-64) Total: 0 bytes
Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bernhard Reutner-Fischer [Wed, 18 Feb 2015 19:41:02 +0000 (20:41 +0100)]
wget: fix --header to not append duplicate headers
function old new delta
wget_main 2551 2715 +164
wget_user_headers - 62 +62
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 226/0) Total: 226 bytes
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 18 Feb 2015 12:47:27 +0000 (13:47 +0100)]
trivial code shrink
function old new delta
rdate_main 246 251 +5
show_entry 291 287 -4
daytime_stream 44 39 -5
packed_usage 30176 30168 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 5/-17) Total: -12 bytes
text data bss dec hex filename
929453 932 17684 948069 e7765 busybox_old
929411 932 17684 948027 e773b busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 18 Feb 2015 10:29:07 +0000 (11:29 +0100)]
ls: trivial code shrink
function old new delta
display_single 914 893 -21
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bernhard Reutner-Fischer [Mon, 16 Feb 2015 16:12:04 +0000 (17:12 +0100)]
dc: tweak parsing
https://bugs.debian.org/538685
dc requires whitespace between language elements.
We were requiring
1 2 + p
instead of the abbreviated
1 2+p
(for example).
function old new delta
stack_machine 97 126 +29
dc_main 117 79 -38
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 29/-38) Total: -9 bytes
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 16 Feb 2015 14:36:25 +0000 (15:36 +0100)]
ls: fix year 9999 bug :)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 13 Feb 2015 10:53:33 +0000 (11:53 +0100)]
modprobe-small: fix thinko in previous commit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 12 Feb 2015 15:18:39 +0000 (16:18 +0100)]
modprobe-small: if concurrent module load did not succeed, wait
usecase:
two sd cards are being mounted in parallel at same time on dual core. example
modules which are getting loaded is nls_cp437. While one module is being
loaded , it makes state in /proc/modules as 'coming' and then starts doing its
module init function (in our case - registering nls). meanwhile on other core,
if modprobe returns that is has already been loaded, then it will continue
and search for the nls list which is not yet finished from first module init.
This fails resulting in not mounting sd card.
function old new delta
process_module 667 746 +79
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bartosz Golaszewski [Tue, 10 Feb 2015 02:16:25 +0000 (03:16 +0100)]
i2cget, i2cset, i2cdetect, i2cdump: new applets
Add a minimal implementation of i2cget, i2cset, i2cdump and i2cdetect
tools. Supports most features of upstream i2c-tools.
function old new delta
i2cdump_main - 1444 +1444
i2cset_main - 1239 +1239
i2cdetect_main - 611 +611
list_i2c_busses_and_exit - 532 +532
packed_usage 29975 30438 +463
i2cget_main - 380 +380
check_read_funcs - 140 +140
i2c_funcs_tab - 128 +128
confirm_action - 100 +100
i2c_dev_open - 57 +57
i2c_smbus_access - 44 +44
confirm_or_abort - 43 +43
check_funcs_test_end - 39 +39
i2c_smbus_read_word_data - 38 +38
i2c_smbus_read_byte_data - 38 +38
i2c_smbus_read_byte - 37 +37
i2c_set_slave_addr - 32 +32
applet_names 2480 2512 +32
adap_descs - 32 +32
i2c_set_pec - 29 +29
get_funcs_matrix - 21 +21
i2c_parse_data_addr - 18 +18
i2c_parse_bus_addr - 18 +18
i2c_bus_lookup - 18 +18
i2c_smbus_write_byte - 17 +17
applet_main 1440 1456 +16
will_skip - 14 +14
no_support - 11 +11
applet_nameofs 720 728 +8
applet_install_loc 180 182 +2
------------------------------------------------------------------------------
(add/remove: 26/0 grow/shrink: 5/0 up/down: 5601/0) Total: 5601 bytes
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 10 Feb 2015 00:30:43 +0000 (01:30 +0100)]
unzip: prevent attacks via malicious filenames
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 7 Feb 2015 20:21:02 +0000 (21:21 +0100)]
libpwdgrp: use getpwent() instead of getpwent_r()
function old new delta
massage_data_for_non_r_func - 90 +90
bb_internal_getpwent - 69 +69
getXXnam_r 94 162 +68
fill_bounds 131 128 -3
deluser_main 355 310 -45
complete_username 123 78 -45
getXXnam 163 90 -73
massage_data_for_r_func 103 - -103
bb_internal_getpwent_r 121 - -121
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 1/5 up/down: 227/-407) Total: -163 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 7 Feb 2015 19:44:46 +0000 (20:44 +0100)]
modprobe-small: fix and simplify rmmod
"rmmod OUT_OF_TREE_MODULE" was not working, because module is not in depmod file.
In general, rmmod doesn't need scanning, it simply unloads every argv[i].
function old new delta
rmmod - 63 +63
modprobe_main 449 465 +16
process_module 705 667 -38
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 79/-38) Total: 41 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Kevin Wallace [Wed, 4 Feb 2015 00:17:29 +0000 (16:17 -0800)]
libbb/loop: don't try to re-use existing loop device
loopinfo.lo_file_name is not enough to uniquely identify a file on a system with
multiple mount namespaces. We could conceivably change this to dedup on
(lo_rdevice, lo_inode), but, as the comment above the deleted code notes, this
whole approach of reusing devices is racy anyway, so it seems better to stop
doing it entirely.
Signed-off-by: Kevin Wallace <k@igneous.io>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 7 Feb 2015 17:14:39 +0000 (18:14 +0100)]
examples/mdev_fat.conf: document that newer mdev exposes path
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Ari Sundholm [Sat, 7 Feb 2015 00:41:22 +0000 (01:41 +0100)]
dd: add optional support for status=noxfer/none
While at it, added 'B' number suffixes, upstream compat
function old new delta
dd_main 1469 1543 +74
dd_suffixes 88 112 +24
packed_usage 30156 30176 +20
dd_output_status 372 388 +16
static.status_words - 13 +13
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/0 up/down: 147/0) Total: 147 bytes
Signed-off-by: Ari Sundholm <ari@tuxera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 5 Feb 2015 20:00:17 +0000 (21:00 +0100)]
ash: fix a SEGV case in an invalid heredoc
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 5 Feb 2015 17:35:52 +0000 (18:35 +0100)]
deluser: implement --remove-home
function old new delta
deluser_main 308 355 +47
packed_usage 30149 30156 +7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 54/0) Total: 54 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 4 Feb 2015 14:19:38 +0000 (15:19 +0100)]
fstrim: fix help text
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 3 Feb 2015 18:42:28 +0000 (19:42 +0100)]
route: fix bogus read error when route table is empty
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 3 Feb 2015 18:32:44 +0000 (19:32 +0100)]
route: improve -A inet6
Upstream route command shows non-up routes, it shows reject and nonexthop flags.
And we had "ref" and "use" values mixed up...
function old new delta
flagvals 32 44 +12
flagchars 9 12 +3
INET_setroute 767 768 +1
INET6_setroute 495 496 +1
set_flags 43 39 -4
flags_ipvx 16 8 -8
route_main 632 623 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/3 up/down: 17/-21) Total: -4 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 3 Feb 2015 14:25:17 +0000 (15:25 +0100)]
gzip: trivial code shrink -5 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 3 Feb 2015 11:11:30 +0000 (12:11 +0100)]
ifconfig: fix double free fatal error in INET_sprint
Based on the patch by Zheng Junling <zhengjunling@huawei.com>
and Chen Gang <cg.chen@huawei.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 3 Feb 2015 11:07:40 +0000 (12:07 +0100)]
libbb: make INET[6]_rresolve use sockaddr2{host,dotted}_noport
function old new delta
INET_rresolve 274 214 -60
INET6_rresolve 168 85 -83
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 2 Feb 2015 15:07:07 +0000 (16:07 +0100)]
gzip: speed up and shrink put_16bit()
function old new delta
put_16bit 104 98 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Rich Felker [Mon, 2 Feb 2015 15:01:16 +0000 (16:01 +0100)]
gzip: do not store timestamp in gzip header
Storing the original file's modification time in the output file is
harmful (precludes deterministic results) and unlike official gzip,
the busybox version provides no way to suppress this behavior; the -n
option is silently ignored. Rather than trying to make -n work, this
patch just removes the timestamp-storing functionality. It should be
considered deprecated anyway; it's not Y2038-safe and gunzip ignores
it by default.
Per RFC 1952, 0 is the correct value to store to indicate that there
is no timestamp.
Signed-off-by: Rich Felker <dalias@libc.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 2 Feb 2015 02:51:47 +0000 (03:51 +0100)]
platform.h: enable mempcpy for FreeBSD
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Micke Prag [Sun, 2 Nov 2014 10:08:24 +0000 (11:08 +0100)]
ubiattach: add option -O
Some images do not have the default VID offset. The option -O must
be used to attach such images.
Signed-off-by: Micke Prag <micke.prag@telldus.se>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Martin Kaiser [Sun, 2 Nov 2014 22:23:16 +0000 (23:23 +0100)]
telnetd: we only need CONFIG_UNIX98_PTYS from the Linux kernel
(re-sending this as it got ignored completey and the format of the
previous mail was probably not correct - please let me know if there's
anything else I can do to get this trivial fix applied)
for telnetd to work, we only need CONFIG_UNIX98_PTYS to be enabled
in the Linux kernel - DEVPTS_FS has been obsolete for some time
Signed-off-by: Martin Kaiser <lists@kaiser.cx>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 30 Jan 2015 14:15:38 +0000 (15:15 +0100)]
dpkg: update supported compression methods
Based on a patch by Ron Yorston <rmy@tigress.co.uk>
function old new delta
get_header_tar_xz - 60 +60
filter_accept_list_reassign 128 188 +60
unpack_package 585 621 +36
init_archive_deb_control 52 76 +24
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 3/0 up/down: 180/0) Total: 180 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 29 Jan 2015 15:41:48 +0000 (16:41 +0100)]
platform.h: mempcpy needs <string.h>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 29 Jan 2015 15:31:36 +0000 (16:31 +0100)]
ntpd: get rid of G.initial_poll_complete
This speeds up syncing - now happens only just
two replies from a peer. Especially useful for "ntpd -q".
Shouldn't have ill effects: if we chose a bad peer,
we will discover it later and switch to another one.
The code is even smaller this way.
Suggested by Miroslav Lichvar <mlichvar@redhat.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 27 Jan 2015 20:59:40 +0000 (21:59 +0100)]
dhcpd: fix an improper widening conversion
We wanted to detect when tv_sec = unsigned1 - unsigned2
underflows by looking at tv_sec's sign. But if tv_sec
is long and it is wider than unsigned, we get unsigned -> long
conversion which is in this case never negative.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 26 Jan 2015 14:45:48 +0000 (15:45 +0100)]
ftpd: prevent zombies. closes 7832
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 25 Jan 2015 21:08:46 +0000 (22:08 +0100)]
platform.h: add compat mempcpy
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 24 Jan 2015 21:30:30 +0000 (22:30 +0100)]
depmod: simple memory optimization
function old new delta
filename2modname 67 86 +19
parse_module 374 351 -23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 24 Jan 2015 18:46:45 +0000 (19:46 +0100)]
trim extra newlines in help texts
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Natanael Copa [Fri, 16 Jan 2015 12:53:05 +0000 (13:53 +0100)]
modprobe: fix modprobe -r and parsing of /etc/modprobe.d
This fixes a regression introduced with commit
78854520 (modprobe:
revert checking for /, stop doing basename() on modprobe args,
2015-01-01) that broke modprobe options stored in /etc/modprobe.conf and
/etc/modprobe.d/*.conf.
This also fixes modprobe -r
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 15 Jan 2015 02:04:23 +0000 (03:04 +0100)]
modprobe: fix "modprobe devname:snd/timer" case (alias with a slash)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 15 Jan 2015 01:48:36 +0000 (02:48 +0100)]
modprobe: fix recent breakage: modules.dep reading code needs to strip dirname
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Jan 2015 16:46:56 +0000 (17:46 +0100)]
modprobe-small: code shrink
function old new delta
pathname_matches_modname 80 42 -38
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Jan 2015 16:40:30 +0000 (17:40 +0100)]
modprobe-small: fix recent breakage: modprobe -r was using full path
"modprobe -r MODNAME", after it found the full module pathname,
should strip dirpath before trying to remove the module.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 11 Jan 2015 15:41:54 +0000 (16:41 +0100)]
diff: fix a bug in diffing against stdin. Closes 7784
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Ron Yorston [Sun, 30 Nov 2014 20:39:53 +0000 (20:39 +0000)]
vi: fix reading of file after last line
If the :r command is used to read a file after the last line of the
buffer the last line of the buffer and the first line of the file
are joined. An extra blank line appears at the end of the buffer.
file 1
file 1
file 1file 2
file 2
file 2
~
~
The insertion point is normally at the start of the line following the
specified line. When the specified line is the last one the next_line
function baulks at moving to the non-existent following line.
Signed-off-by: Ron Yorston <rmy@tigress.co.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Ron Yorston [Sun, 30 Nov 2014 20:39:25 +0000 (20:39 +0000)]
vi: failure to open file is not an error when initialising buffer
Commit
32afd3a introduced these regressions on the master branch:
Starting vi with no filename on the command line gives the status message
"'(null)' Bad address" instead of "- No file 1/1 100%".
Starting vi with a non-existent file on the command line gives the status
message "'new.txt' No such file or directory" instead of "- new.txt 1/1 100%"
Signed-off-by: Ron Yorston <rmy@tigress.co.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 7 Jan 2015 13:39:01 +0000 (14:39 +0100)]
depmod: fix recent breakage in modules.dep generation
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Tito Ragusa [Tue, 6 Jan 2015 00:22:36 +0000 (01:22 +0100)]
libpwdgrp: line counting in error meesages is broken, remove it
Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
René Rhéaume [Mon, 5 Jan 2015 19:35:00 +0000 (20:35 +0100)]
swaponoff: add support for -e
Signed-off-by: René Rhéaume <rene.rheaume@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 5 Jan 2015 17:39:23 +0000 (18:39 +0100)]
mpstat: code shrink
function old new delta
get_uptime 134 129 -5
get_irqs_from_stat 110 103 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Guillermo Rodriguez [Mon, 5 Jan 2015 17:34:53 +0000 (18:34 +0100)]
free: handle "cached" value too
function old new delta
free_main 356 481 +125
Signed-off-by: Guillermo Rodriguez <guille.rodriguez@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 5 Jan 2015 14:37:58 +0000 (15:37 +0100)]
libbb: code shrink by factoring out common update_utmp_DEAD_PROCESS
function old new delta
update_utmp_DEAD_PROCESS - 17 +17
telnetd_main 1685 1674 -11
mark_terminated 56 45 -11
handle_sigchld 74 63 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 5 Jan 2015 14:12:37 +0000 (15:12 +0100)]
deleting unused ntpd_simple.c
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 5 Jan 2015 14:09:04 +0000 (15:09 +0100)]
libpwdgrp: fixes suggested by Tito, comment tweaks
function old new delta
bb_internal_getpwent_r 100 121 +21
parse_common 202 203 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Adam Tkac [Sun, 4 Jan 2015 16:46:08 +0000 (17:46 +0100)]
ntpd: relicense ntpd applet to ISC-style license
OpenNTPd is licensed under ISC-style license so it's good idea to keep
ntpd applet under same license to avoid mess, instead of having
our changes to be under GPL.
Names of original code's authors are added.
Signed-off-by: Adam Tkac <vonsch@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Jan 2015 01:34:52 +0000 (02:34 +0100)]
libpwdgrp: another code shrink
function old new delta
massage_data_for_r_func - 110 +110
bb_internal_getpwent_r 173 100 -73
getXXnam_r 176 95 -81
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 110/-154) Total: -44 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 4 Jan 2015 01:02:39 +0000 (02:02 +0100)]
libpwdgrp: code shrink
function old new delta
parse_common 206 205 -1
getgrouplist_internal 229 225 -4
bb_internal_getpwent_r 182 173 -9
getXXnam 232 222 -10
getXXnam_r 216 176 -40
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/5 up/down: 0/-64) Total: -64 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 20:16:18 +0000 (21:16 +0100)]
libpwdgrp: getgrXXX: empty string is not a member name, do not store it
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 20:11:27 +0000 (21:11 +0100)]
fix a SEGV in previous commit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 20:03:39 +0000 (21:03 +0100)]
libpwdgrp: fix counting of commas in group list
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 19:47:47 +0000 (20:47 +0100)]
libpwdgrp: store getXXnam result in a single malloc block
This saves a bit of memory but more importantly, allows to create
xmalloc_getpwnam() API where result can be deleted simply using free().
function old new delta
getXXnam 134 173 +39
parse_common 188 212 +24
convert_to_struct 277 290 +13
get_S 90 88 -2
tokenize 129 126 -3
bb_internal_getpwent_r 175 172 -3
getXXnam_r 208 198 -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/4 up/down: 76/-18) Total: 58 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 18:12:49 +0000 (19:12 +0100)]
libpwdgrp: make db->def[] one byte shorter
In the future I will need another uint8_t, want to fit it
w/o using another word on 32 bits.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 16:53:49 +0000 (17:53 +0100)]
libpwdgrp: use a better estimate of max struct size
Previous code's trick with bitwise OR was giving this on 32-bit x86:
sizeof(struct passwd):28
sizeof(struct group):16
sizeof(struct spwd):36
sizeof(struct_result):60
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 15:09:05 +0000 (16:09 +0100)]
libpwdgrp: reinstate Tito's optional atexit freeing
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 14:54:04 +0000 (15:54 +0100)]
libpwdgrp: fix a memory leak in getXXnam (we did not save address of string buf)
function old new delta
convert_to_struct 261 269 +8
const_sp_db 20 24 +4
const_pw_db 20 24 +4
const_gr_db 20 24 +4
tokenize 144 147 +3
parse_common 185 188 +3
get_S 82 85 +3
bb_internal_getpwent_r 188 185 -3
gr_off 4 - -4
getXXnam 171 165 -6
pw_off 7 - -7
getgrouplist_internal 237 229 -8
getXXnam_r 215 207 -8
sp_off 9 - -9
------------------------------------------------------------------------------
(add/remove: 0/3 grow/shrink: 7/4 up/down: 29/-45) Total: -16 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 3 Jan 2015 14:15:47 +0000 (15:15 +0100)]
libpwdgrp: tweak comments, replace one xmalloc with xzalloc
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 2 Jan 2015 21:31:07 +0000 (22:31 +0100)]
libpwdgrp: use FAST_FUNC to make "matching ABI" optimization more likely to succeed
See bb_internal_get*nam_r size reduction:
function old new delta
bb_internal_getpwent_r 167 176 +9
getXXnam_r 204 206 +2
sulogin_main 326 325 -1
su_main 471 470 -1
read_line_input 3832 3831 -1
print_stat 865 864 -1
prepare_socket_fd 283 282 -1
load_crontab 777 776 -1
fork_job 456 455 -1
do_shm 884 883 -1
do_sem 637 636 -1
do_msg 783 782 -1
complete_username 124 123 -1
bb_internal_getgrouplist 71 70 -1
xgetpwuid 27 25 -2
xgetpwnam 27 25 -2
xgetgrnam 27 25 -2
xgetgrgid 27 25 -2
uid2uname 18 16 -2
login_main 980 978 -2
gid2group 18 16 -2
get_shell_name 54 52 -2
change_identity 50 48 -2
bb_internal_initgroups 50 48 -2
argstr 1261 1259 -2
print_perms 177 174 -3
inetd_main 2077 2074 -3
run_applet_no_and_exit 446 442 -4
fileaction_setowngrp 89 85 -4
deluser_main 312 308 -4
bb_internal_getpwuid 19 15 -4
bb_internal_getpwnam 11 7 -4
bb_internal_getgrnam 14 10 -4
bb_internal_getgrgid 19 15 -4
adduser_main 865 861 -4
passwd_main 989 984 -5
get_passwd 97 92 -5
data_extract_all 887 882 -5
check_user_passwd 490 485 -5
get_groups 81 75 -6
ftpd_main 2178 2171 -7
bb_internal_getspnam_r 42 18 -24
bb_internal_getpwnam_r 39 15 -24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/41 up/down: 11/-153) Total: -142 bytes
text data bss dec hex filename
923167 928 17676 941771 e5ecb busybox_old
923023 928 17676 941627 e5e3b busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Tito Ragusa [Fri, 2 Jan 2015 20:37:59 +0000 (21:37 +0100)]
libpwdgrp: rewritten to use malloced implementation
This removed buffer size limitations.
function old new delta
convert_to_struct - 269 +269
getXXnam_r - 204 +204
parse_common - 185 +185
getXXnam - 164 +164
tokenize - 126 +126
bb_internal_getpwent_r 102 167 +65
get_S 30 88 +58
getgrouplist_internal 195 240 +45
const_sp_db - 20 +20
const_pw_db - 20 +20
const_gr_db - 20 +20
bb_internal_endpwent 27 36 +9
bb_internal_endgrent 27 36 +9
decode_one_format 726 734 +8
bb_internal_setpwent 17 24 +7
volume_id_probe_iso9660 319 322 +3
scriptreplay_main 204 207 +3
mkfs_minix_main 2684 2687 +3
id_main 478 480 +2
hash_find 233 235 +2
pstree_main 321 322 +1
gr_off 3 4 +1
expand_one_var 1579 1578 -1
pwf 4 - -4
grf 4 - -4
pack_gzip 1787 1780 -7
addattr32 67 56 -11
buffer_fill_and_print 191 178 -13
dpkg_main 2944 2927 -17
bb_internal_setgrent 17 - -17
bb_internal_getpwuid 38 19 -19
bb_internal_getgrgid 44 19 -25
bb_internal_getpwnam 38 11 -27
bb_internal_getgrnam 44 14 -30
bb_internal_fgetpwent_r 51 - -51
bb_internal_fgetgrent_r 51 - -51
bb_internal_getspnam_r 121 42 -79
bb_internal_getpwnam_r 121 39 -82
bb_internal_getgrent_r 102 - -102
bb__parsepwent 110 - -110
bb_internal_getpwuid_r 113 - -113
bb_internal_getgrgid_r 113 - -113
bb__parsespent 120 - -120
bb_internal_getgrnam_r 121 - -121
bb__pgsreader 213 - -213
bb__parsegrent 226 - -226
------------------------------------------------------------------------------
(add/remove: 8/13 grow/shrink: 14/11 up/down: 1224/-1556) Total: -332 bytes
text data bss dec hex filename
923471 928 17684 942083 e6003 busybox_old
923167 928 17676 941771 e5ecb busybox_unstripped
Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 1 Jan 2015 18:02:40 +0000 (19:02 +0100)]
modprobe: revert checking for /, stop doing basename() on modprobe args
function old new delta
process_module 726 719 -7
filename2modname 81 67 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-21) Total: -21 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bartosz Golaszewski [Wed, 17 Dec 2014 16:58:23 +0000 (17:58 +0100)]
Makefile: fix cscope target
This target doesn't work with current directory layout. Just make cscope
index all .c and .h files.
While we're at it: add cscope output files to .gitignore.
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 28 Dec 2014 23:04:18 +0000 (00:04 +0100)]
ash: fix a SEGV in ${#1}
function old new delta
varvalue 760 805 +45
evalvar 648 603 -45
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
John Schroeder [Thu, 25 Dec 2014 20:12:51 +0000 (21:12 +0100)]
udhcpd: account for script delay in lease
Prevent nasty surprises if script runs longer than lease time / 2.
Signed-off-by: John Schroeder <jschroed@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 24 Dec 2014 01:06:02 +0000 (02:06 +0100)]
Start 1.24.0 development cycle
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 24 Dec 2014 00:23:34 +0000 (01:23 +0100)]
Bump version to 1.23.0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 24 Dec 2014 00:46:29 +0000 (01:46 +0100)]
libbb: add sanity check in bb_arg_max()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 22 Dec 2014 18:37:05 +0000 (19:37 +0100)]
randomconfig fixes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Peter Kümmel [Mon, 22 Dec 2014 00:55:54 +0000 (01:55 +0100)]
Make it possible to override LOGIN_FAIL_DELAY in CONFIG_EXTRA_CFLAGS
Signed-off-by: Peter Kümmel <syntheticpp@gmx.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 21 Dec 2014 15:10:22 +0000 (16:10 +0100)]
udhcpc: account for script run time
Based on the following user report:
I ran into an issue where I was seeing a long delay in the scripts called
in udhcp_run_script. I was using an old version of OpenWrt (kamikaze)
and a satellite modem. An NTP script was being called and the modem
would sometimes take a long time to respond to the DNS lookup when
it was offline.
This delay started affecting my lease time. The lease that I would
get from my satellite modem before it was online would be short:
only 60 seconds. The delay with NTP and the modem would typically
be about 18 seconds. This would cause the first DHCP renew request
from dhcpc to be a little late. Under certain circumstances,
I could even see the first DHCP renew to occur after the lease
had expired!
function old new delta
udhcpc_main 2816 2837 +21
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Baruch Siach [Wed, 17 Dec 2014 22:27:26 +0000 (00:27 +0200)]
nanddump: don't show --bb in usage when disabled
The --bb options now depends on LONG_OPTS. Omit mentions of --bb from usage
text when LONG_OPTS is disabled.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Baruch Siach [Wed, 17 Dec 2014 16:02:37 +0000 (17:02 +0100)]
nandwrite: fix build when long options are disabled
The Required_argument macro is only defined when long options are enabled.
Fixes the following build error:
miscutils/nandwrite.c: In function 'nandwrite_main':
miscutils/nandwrite.c:120:10: error: expected ',' or ';' before 'Required_argument'
Reported-by: Christian Kästner <kaestner at cs.cmu.edu>
Signed-off-by: Baruch Siach <baruch at tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Ron Yorston [Fri, 12 Dec 2014 08:29:41 +0000 (08:29 +0000)]
lineedit: don't block when looking for escape sequence in vi-mode
In vi-mode lineedit tries to detect some escape sequences.
After the ESC it reads the next character to check for certain
values. This read should have a timeout or a user-entered ESC to
switch to command mode doesn't properly handle the next character.
Signed-off-by: Ron Yorston <rmy@tigress.co.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 11 Dec 2014 14:33:07 +0000 (15:33 +0100)]
tar: fix "tar -cJ" ignoring -J option. closes 7706
function old new delta
tar_main 895 938 +43
vfork_compressor 206 191 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 43/-15) Total: 28 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 10 Dec 2014 16:22:13 +0000 (17:22 +0100)]
lineedit: don't fall back to simple line input if tty is in raw mode
Testcase: shell command input after python ^Z should still work
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bartosz Golaszewski [Wed, 10 Dec 2014 12:34:42 +0000 (13:34 +0100)]
Config: select PLATFORM_LINUX if using sendfile()
Man entry for sendfile:
Not specified in POSIX.1-2001, or other standards.
Other UNIX systems implement sendfile() with different semantics and
prototypes. It should not be used in portable programs.
Select PLATFORM_LINUX if enabling FEATURE_USE_SENDFILE.
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Jacob Kjaergaard [Wed, 10 Dec 2014 12:44:27 +0000 (13:44 +0100)]
flashcp: change BUFSIZE to 4k
some flash partitions can be smaller than the existing BUFSIZE thus write
BUFSIZE will fail with "no space left on device"
Signed-off-by: Jacob Kjaergaard <jacob.kjaergaard@prevas.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 6 Dec 2014 23:49:55 +0000 (00:49 +0100)]
make xmalloc_open_zipped_read_close result NUL terminated
Compat with xmalloc_open_read_close
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 6 Dec 2014 23:44:00 +0000 (00:44 +0100)]
libarchive: add capability to unpack to mem.buffer
The performance and number of processes for a "depmod -a" with gzipped
modules was abysmal. This patch adds a code path without fork,
benefiting all users of xmalloc_open_zipped_read_close.
"modinfo radeon.ko.gz", a single-file reader, got 30% faster.
"depmod -a", which used to fork over 800 times, got 20% faster.
Heavily based on a patch by Lauri Kasanen <curaga@operamail.com>
function old new delta
setup_transformer_on_fd - 159 +159
transformer_write - 122 +122
fork_transformer - 112 +112
xmalloc_open_zipped_read_close 63 118 +55
read_bunzip 1866 1896 +30
xtransformer_write - 19 +19
unzip_main 2449 2462 +13
bbunpack 755 766 +11
unpack_lzma_stream 2717 2723 +6
unpack_xz_stream 2393 2397 +4
unpack_Z_stream 1173 1175 +2
inflate_unzip 111 105 -6
check_signature16 70 63 -7
unpack_bz2_stream 359 349 -10
unpack_unxz 12 - -12
unpack_unlzma 12 - -12
unpack_uncompress 12 - -12
unpack_gunzip 12 - -12
unpack_bunzip2 12 - -12
open_transformer 106 92 -14
inflate_unzip_internal 1945 1916 -29
unpack_gz_stream 693 655 -38
open_zipped 89 47 -42
setup_unzip_on_fd 142 53 -89
------------------------------------------------------------------------------
(add/remove: 4/5 grow/shrink: 7/8 up/down: 533/-295) Total: 238 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 6 Dec 2014 23:42:49 +0000 (00:42 +0100)]
Rename transformer_aux_data_t -> transformer_state_t
No code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 30 Nov 2014 18:39:58 +0000 (19:39 +0100)]
man: do not mangle $MANPATH in memory
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bartosz Golaszewski [Thu, 27 Nov 2014 12:20:24 +0000 (13:20 +0100)]
libbb: use sendfile() to copy data between file descriptors
Busybox already uses sendfile in httpd. This patch proposes to use it
globally to copy data between file descriptors.
It speeds up the copying on slow systems a lot - below are the times needed
to copy a 450Mb file with and without this option enabled on a BeagleBone
Black:
sendfile:
user 0m0.000s
sys 0m8.170s
read/write 4k:
user 0m0.470s
sys 0m16.300s
function old new delta
bb_full_fd_action 394 474 +80
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 26 Nov 2014 23:40:08 +0000 (00:40 +0100)]
man: accept a list of dirs in $MANPATH
function old new delta
add_MANPATH - 143 +143
man_main 852 731 -121
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 143/-121) Total: 22 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 26 Nov 2014 14:17:59 +0000 (15:17 +0100)]
libbb: use ARG_MAX for bb_arg_max() only if it's 60k+
Sometimes ARG_MAX is small (like 32k) yet sysconf(_SC_ARG_MAX)
is big, and people prefer using the bigger value.
OTOH, with sufficiently large ARG_MAX, further wins from
sysconf(_SC_ARG_MAX) being bigger are exponentially smaller:
you can see 4 times fewer fork+execs when you run find, but
when each execed process already takes a thousand parameters
it's likely execution time is dominated by what that process
does with each parameter.
Thus, with this change ARG_MAX is used if it's sufficiently big,
otherwise sysconf(_SC_ARG_MAX) is used.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 26 Nov 2014 13:04:51 +0000 (14:04 +0100)]
bbunit: fix WANT_TIMING compilation
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bartosz Golaszewski [Wed, 26 Nov 2014 12:28:54 +0000 (13:28 +0100)]
gitignore: add testsuite/echo-ne
Signed-off-by: Bartosz Golaszewski <bartekgola at gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>