Commit Graph

13190 Commits

Author SHA1 Message Date
Denys Vlasenko
26cd90c7fd unzip: survive lack of CDF on non-streaming zip files
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-21 02:31:08 +02:00
Denys Vlasenko
1390a010b6 awk: use "long long" as integer type, not "int"
Testcase:
awk "BEGIN{n=(2^31)-1; print n, int(n), n%1, ++n, int(n), n%1}"
2147483647 2147483647 0 2147483648 2147483648 0

(last three values weren't showing right)

function                                             old     new   delta
evaluate                                            3444    3458     +14
fmt_num                                              221     230      +9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-20 21:23:01 +02:00
Denys Vlasenko
5e87e8aebb unzip: increase PEEK_FROM_END from 16k to 64k
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-20 15:20:46 +02:00
Patrick McHardy
a7ecbed56b ip link: add VLAN support
function                                             old     new   delta
do_add_or_delete                                       -    1073   +1073
get_u16                                                -      62     +62
static.protocols                                       -      16     +16
do_iplink                                           1235    1232      -3
do_change                                            495       -    -495
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 0/1 up/down: 1151/-498)         Total: 653 bytes

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-15 05:16:13 +02:00
Denys Vlasenko
9b58fe9c0b ip: code shrink
function                                             old     new   delta
do_ipaddr                                             78      81      +3
do_iprule                                            140     139      -1
do_iptunnel                                          283     278      -5
iprule_modify                                        851     841     -10
ipaddr_modify                                       1293    1236     -57
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/4 up/down: 3/-73)             Total: -70 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-15 05:15:46 +02:00
Denys Vlasenko
25ce3ee9f3 typo fix in comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-14 01:23:06 +02:00
Denys Vlasenko
c72b43c2f0 Commonalize typical [b,]k,m suffix struct
function                                             old     new   delta
bkm_suffixes                                           -      32     +32
static.km_suffixes                                    24       -     -24
suffixes                                              32       -     -32
static.bkm                                            32       -     -32
head_tail_suffixes                                    32       -     -32
------------------------------------------------------------------------------
(add/remove: 2/6 grow/shrink: 0/0 up/down: 72/-160)           Total: -88 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-13 23:49:45 +02:00
Bernhard Reutner-Fischer
0dacb68e1a chrt: remove warning for _POSIX_PRIORITY_SCHEDULING
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-07-08 11:20:13 +02:00
Denys Vlasenko
e95738f635 typo fix in comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-08 03:13:08 +02:00
Denys Vlasenko
d87fcd4888 tail: code shrink
function                                             old     new   delta
tail_main                                           1548    1613     +65
tail_read                                            136      34    -102
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 65/-102)           Total: -37 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-08 02:39:51 +02:00
Denys Vlasenko
40ab27a225 sed: remove now-redundant backslash-newline handling
4b0bb9e0fd added this code in 2007,
then in a2215b98f7 more general fix
was added.

function                                             old     new   delta
add_cmd_block                                         98      58     -40

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-08 02:07:16 +02:00
Denys Vlasenko
e93d15613e sed: document where we are more liberal then GNU
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-08 01:43:40 +02:00
Denys Vlasenko
d8f6d8c627 Call setlocale("") , not "C", if we want to set the default one
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-07 14:41:58 +02:00
Denys Vlasenko
2301d127a2 unicode: check $LC_CTYPE too to detect Unicode mode
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-05 22:00:57 +02:00
Cristian Ionescu-Idbohrn
4f9fc1e5f5 foo*sum: Correct syntax error
coreutils/md5_sha1_sum.c:156:3: error: expected '}' before 'else'

Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-07-04 11:33:42 +02:00
Denys Vlasenko
6651e42609 tail: track file size only in -f mode
This eliminates extra fstat and lseek calls on every read

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-02 20:09:15 +02:00
Denys Vlasenko
cd8eece88e foo*sum: report I/O errors, don't merely exit with 1.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-02 19:11:01 +02:00
Denys Vlasenko
3e7ecb179b unicode: check $LC_ALL to detect Unicode mode, not only $LANG
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-02 17:30:23 +02:00
Denys Vlasenko
ea267d518f wget: do not abort if "_" is encountered in a HTTP header
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-01 15:05:09 +02:00
Denys Vlasenko
1bf560e9c3 cryptpw: do not segfault on EOF. Closes 6350
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 21:28:55 +02:00
Rich Felker
16614e9bab *: change execl sentinels from NULL to (char*)0
Signed-off-by: Rich Felker <dalias@aerifal.cx>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 13:45:17 +02:00
Denys Vlasenko
e9b3fcc3e4 ubi_tools: enhance -s option to allow size multiplier to match mtd-utils
Based on patch by Paul B. Henson <henson@acm.org>

function                                             old     new   delta
static.size_suffixes                                   -      32     +32
ubi_tools_main                                      1141    1148      +7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 02:47:45 +02:00
Denys Vlasenko
f798ba9717 ubi_tools: add forgotten argv++
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 02:46:44 +02:00
Denys Vlasenko
65bdf0b737 ubi_tools: extend supported volume size to 64 bits; shrink code
function                                             old     new   delta
get_num_from_file                                      -      90     +90
packed_usage                                       29395   29377     -18
ubi_tools_main                                      1349    1141    -208
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 90/-226)          Total: -136 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 02:38:18 +02:00
Paul B. Henson
f86404f773 ubimkvol: add -m option to create volume of maximum size
Signed-off-by: Paul B. Henson <henson@acm.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 02:37:05 +02:00
Denys Vlasenko
173aa78bcf pstree: fix theoretically unsafe code
In practice, p->comm is never long enough to trigger the bug, but still.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-28 01:59:25 +02:00
Denys Vlasenko
26a7e2ecbf ping: code shrink
function                                             old     new   delta
unpack_tail                                          262     243     -19

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-28 01:33:47 +02:00
Denys Vlasenko
59f46676a9 Move create_icmp[6]_socket to its only user, and simplify it
function                                             old     new   delta
run_applet_and_exit                                  711     714      +3
sendping_tail                                        239     236      -3
common_ping_main                                    1798    1770     -28
create_icmp_socket                                    65       -     -65
create_icmp6_socket                                   65       -     -65
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 1/2 up/down: 3/-161)           Total: -158 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-28 00:30:46 +02:00
Denys Vlasenko
4928e9f7d0 losetup: assorted fixes. Closes 6314
"losetup -d" was not complaining that LOOPDEV is missing.
"losetup -a" was listing only up to /dev/loop9.
"losetup -f" looped forever if llop0 was taken, and never tried
anything after /dev/loop9.
"-o" with other options (say, -r) had no effect.

function                                             old     new   delta
losetup_main                                         376     419     +43

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-27 03:45:16 +02:00
Thomas De Schampheleire
879f008a8f lsof: correct check for symbolic link
Busybox lsof used the d_type field of a 'struct dirent' to verify whether the
entry is a symbolic link. This field, however, is not portable. On at least
one board [1] I have seen, that field is 0, and the check fails even though
the entry is a link.

The explicit check for a symbolic link is really only needed to skip the
default directory entries '.' and '..'. The directory /proc/<pid>/fd/
should not contain anything else but these two and symbolic links.
With these assumptions, this patch replaces the explicit link check with a
basic check for '.' and '..' (and any hidden file). In the unlikely case that
there are other file types, xmalloc_readlink() will return NULL, and we can
skip the entry.

[1] A MIPS-based board with glibc 2.9, Linux 2.6.32.27.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-27 03:44:46 +02:00
Denys Vlasenko
d66eb9042d nslookup: set default DNS server again. Hopefully helps with 675
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-27 01:09:51 +02:00
Denys Vlasenko
1f5e81f8f8 md5/sha512: a better fix for strict aliasing warnings
The locations *are* well-aligned for direct stores
on any architecture.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-27 01:03:19 +02:00
Mike Frysinger
f6205c6ab7 md5/sha512: fix strict aliasing warnings
If the target can tolerate these issues, then gcc is smart enough
to generate the same code (x86_64 produces the same code).  If the
target can't, then it needs the memcpy anyways.

libbb/hash_md5_sha.c: In function 'common64_end':
libbb/hash_md5_sha.c:87:4: warning:
  dereferencing type-punned pointer will break strict-aliasing rules
    *(uint64_t *) (&ctx->wbuffer[64 - 8]) = t;
libbb/hash_md5_sha.c: In function 'sha512_end':
libbb/hash_md5_sha.c:886:4: warning:
  dereferencing type-punned pointer will break strict-aliasing rules
    *(uint64_t *) (&ctx->wbuffer[128 - 8]) = t;
libbb/hash_md5_sha.c:889:4: warning:
  dereferencing type-punned pointer will break strict-aliasing rules
    *(uint64_t *) (&ctx->wbuffer[128 - 16]) = t;

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-06-19 11:49:15 -04:00
Mike Frysinger
fea2588021 pstree: stop truncating thread names
This also fixes a minor buffer overflow when displaying threads as
add_proc() only expects COMM_LEN bytes, but we give it one more than
that.

Reported-by: Dag Wieers <dag@wieers.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-06-19 11:29:57 -04:00
Denys Vlasenko
5a7e3376b7 ntpd: set offset to 0.0 in "usync" event
function                                             old     new   delta
ntpd_main                                           1030    1026      -4

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-23 16:06:59 +02:00
Denys Vlasenko
07c5987498 ntpd: set G.last_script_run even if script isn't configured
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-22 18:18:51 +02:00
Denys Vlasenko
5ffdd1d981 ntpd: make "unsync" code actually work.
While at it: don't run "periodic" if interrupted by a signal.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-22 18:16:34 +02:00
Denys Vlasenko
d99ef636f6 ntpd: drop delay outliers; run "unsync" handler if no replies for some time
function                                             old     new   delta
ntpd_main                                            960    1029     +69
recv_and_process_peer_pkt                            834     892     +58
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 127/0)             Total: 127 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-22 17:48:19 +02:00
Jonathan Liu
b6dc13c2d3 sulogin: allow system maintenance login if root password is empty
The current password checking is unable to distinguish between the user
entering an empty password or pressing Control-D. As a result, an empty
password always results in normal startup.

We modify bb_ask to return NULL if Control-D is pressed without entering
a password. The sulogin applet is then modified to only proceed to
normal startup if bb_ask returns NULL. This covers EOF with no password,
interrupt by timeout and ^C.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-21 17:01:55 +02:00
Denys Vlasenko
9cb1e2f86b sulogin: correct lying comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-21 16:47:36 +02:00
Denys Vlasenko
f958425451 init: remove special-case code for machines with less tham 1 MB of RAM.
function                                             old     new   delta
init_main                                            920     781    -139

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-21 16:36:51 +02:00
Denys Vlasenko
ae0cf2a9d7 stty: disable CIBAUD leak check - it is not necessary on Linux
function                                             old     new   delta
stty_main                                           1233    1196     -37

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-17 20:08:12 +02:00
Denys Vlasenko
e9581b673c stty: code shrink
function                                             old     new   delta
set_mode                                             759     725     -34

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-17 18:06:49 +02:00
Denys Vlasenko
b443a3780d udhcp: code shrink
function                                             old     new   delta
attach_option                                        416     413      -3
allocate_tempopt_if_needed                            74       -     -74

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-17 15:19:47 +02:00
Denys Vlasenko
c133fa66f3 udhcpc: fix a problem with binary-encoded options #2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-17 15:13:38 +02:00
Denys Vlasenko
6db5f679a2 find:: get rid of nested function (it's a gcc-ism)
function                                             old     new   delta
alloc_action                                           -      80     +80
parse_params                                        1459    1445     -14
static.alloc_action                                   98       -     -98
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/1 up/down: 80/-112)           Total: -32 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-16 18:36:42 +02:00
James Hogan
5fc0585c01 grep: fix grep -x to not set REG_NOSUB
When -F isn't specified (and !ENABLE_EXTRA_COMPAT), grep -x uses
regexec's regmatch_t output to determine if the match was the entire
line. However it also set the REG_NOSUB flag which makes it ignore the
regmatch_t argument.

Add an exception to the setting of REG_NOSUB for OPT_x and add some test
cases to test the behaviour of -x.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Natanael Copa <ncopa@alpinelinux.org>
Cc: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-16 14:47:05 +02:00
Denys Vlasenko
aa94130f74 volume_id_internal.h: drop unoptimized byteswap routines
function                                             old     new   delta
volume_id_probe_hfs_hfsplus                          802     627    -175

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-15 09:36:40 +02:00
Bartosz Golaszewski
414db791d0 grep: don't bail out on first mismatch if '-w' option is set
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-15 09:20:40 +02:00
Denys Vlasenko
e0a6ab698f Fix build failures caused by not compiling open_transformer.c (#2)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-15 03:23:30 +02:00