oweals/busybox.git
8 years agosed: understand \n,\r and \t in i and a commands. Closes 8871
Denys Vlasenko [Sun, 24 Apr 2016 14:18:03 +0000 (16:18 +0200)]
sed: understand \n,\r and \t in i and a commands. Closes 8871

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agogenerate_BUFSIZ.sh: yet another tweak
Denys Vlasenko [Sun, 24 Apr 2016 12:13:35 +0000 (14:13 +0200)]
generate_BUFSIZ.sh: yet another tweak

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years ago*: slap on a few ALIGN1/2s where appropriate
Denys Vlasenko [Fri, 22 Apr 2016 16:09:21 +0000 (18:09 +0200)]
*: slap on a few ALIGN1/2s where appropriate

The result of looking at "grep -F -B2 '*fill*' busybox_unstripped.map"

   text    data     bss     dec     hex filename
 829901    4086    1904  835891   cc133 busybox_before
 829665    4086    1904  835655   cc047 busybox

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoscripts/trylink: document DATA_SEGMENT_ALIGN() hack
Denys Vlasenko [Fri, 22 Apr 2016 00:00:04 +0000 (02:00 +0200)]
scripts/trylink: document DATA_SEGMENT_ALIGN() hack

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agogenerate_BUFSIZ.sh: catch BUFSIZE < 1024 also on "big" builds
Denys Vlasenko [Thu, 21 Apr 2016 22:24:53 +0000 (00:24 +0200)]
generate_BUFSIZ.sh: catch BUFSIZE < 1024 also on "big" builds

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agobuild system: fix generate_BUFSIZ.sh to not alternate 1k and malloc builds
Denys Vlasenko [Thu, 21 Apr 2016 21:52:35 +0000 (23:52 +0200)]
build system: fix generate_BUFSIZ.sh to not alternate 1k and malloc builds

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agolibbb: constify *bb_common_bufsiz1 (if it is compiled to be a pointer)
Denys Vlasenko [Thu, 21 Apr 2016 19:47:45 +0000 (21:47 +0200)]
libbb: constify *bb_common_bufsiz1 (if it is compiled to be a pointer)

This lets gcc optimize much better:

   text    data     bss     dec     hex filename
 922846     910   13056  936812   e4b6c busybox_unstripped.nonconst
 920255     910   13056  934221   e414d busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agolibbb: make "COMMON_BUFSIZE = 1024 bytes, the buffer will be malloced" work
Denys Vlasenko [Thu, 21 Apr 2016 19:03:51 +0000 (21:03 +0200)]
libbb: make "COMMON_BUFSIZE = 1024 bytes, the buffer will be malloced" work

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcp: add setup_common_bufsiz() as needed
Denys Vlasenko [Thu, 21 Apr 2016 16:54:36 +0000 (18:54 +0200)]
udhcp: add setup_common_bufsiz() as needed

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years ago*: hopefully all setup_common_bufsiz() are in place
Denys Vlasenko [Thu, 21 Apr 2016 16:38:51 +0000 (18:38 +0200)]
*: hopefully all setup_common_bufsiz() are in place

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years ago*: add most of the required setup_common_bufsiz() calls
Denys Vlasenko [Thu, 21 Apr 2016 16:18:48 +0000 (18:18 +0200)]
*: add most of the required setup_common_bufsiz() calls

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agolibbb: make bb_common_bufsiz1 1 kbyte, add capability to use bss tail for it
Denys Vlasenko [Thu, 21 Apr 2016 14:26:30 +0000 (16:26 +0200)]
libbb: make bb_common_bufsiz1 1 kbyte, add capability to use bss tail for it

The config item is FEATURE_USE_BSS_TAIL. When it is off (default):

function                                             old     new   delta
read_config                                          210     228     +18
doCommands                                          2279    2294     +15
ipneigh_list_or_flush                                763     772      +9
ipaddr_list_or_flush                                1256    1261      +5
display_process_list                                1301    1306      +5
conspy_main                                         1378    1383      +5
do_lzo_compress                                      352     355      +3
do_lzo_decompress                                    565     567      +2
push                                                  46      44      -2
inetd_main                                          2136    2134      -2
uevent_main                                          421     418      -3
addLines                                              97      92      -5
bb_common_bufsiz1                                   8193    1024   -7169
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 8/5 up/down: 62/-7181)        Total: -7119 bytes
   text    data     bss     dec     hex filename
 829850    4086    9080  843016   cdd08 busybox_old
 829901    4086    1904  835891   cc133 busybox_unstripped

FEATURE_USE_BSS_TAIL=y:

read_config                                          210     228     +18
doCommands                                          2279    2294     +15
ipneigh_list_or_flush                                763     772      +9
ipaddr_list_or_flush                                1256    1261      +5
display_process_list                                1301    1306      +5
conspy_main                                         1378    1383      +5
do_lzo_compress                                      352     355      +3
do_lzo_decompress                                    565     567      +2
inetd_main                                          2136    2134      -2
bb_common_bufsiz1                                   8193       -   -8193
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 8/1 up/down: 62/-8195)        Total: -8133 bytes
   text    data     bss     dec     hex filename
 829850    4086    9080  843016   cdd08 busybox_old
 829911    4086     880  834877   cbd3d busybox_unstripped

FIXME: setup_common_bufsiz() calls are missing.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounzip: shorter code for date/time generation
Denys Vlasenko [Mon, 18 Apr 2016 00:34:29 +0000 (02:34 +0200)]
unzip: shorter code for date/time generation

function                                             old     new   delta
unzip_main                                          2426    2414     -12

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounzip: better match for "standard" unzip's output; string shrinkage
Denys Vlasenko [Sun, 17 Apr 2016 23:43:24 +0000 (01:43 +0200)]
unzip: better match for "standard" unzip's output; string shrinkage

function                                             old     new   delta
unzip_main                                          2490    2426     -64
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-64)             Total: -64 bytes
   text    data     bss     dec     hex filename
 924008     906   17160  942074   e5ffa busybox_old
 923846     906   17160  941912   e5f58 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounzip: fix percent overflow; show "stored" files properly
Denys Vlasenko [Sun, 17 Apr 2016 23:14:05 +0000 (01:14 +0200)]
unzip: fix percent overflow; show "stored" files properly

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounzip: fix a case where we find wrong CDE. Closes 8821
Denys Vlasenko [Sun, 17 Apr 2016 19:05:34 +0000 (21:05 +0200)]
unzip: fix a case where we find wrong CDE. Closes 8821

function                                             old     new   delta
unzip_main                                          2472    2490     +18

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoash: bash-compatible $'...' shouldn't expand in double quotes
Ron Yorston [Sun, 3 Apr 2016 21:43:14 +0000 (22:43 +0100)]
ash: bash-compatible $'...' shouldn't expand in double quotes

Bash doesn't expand its $'...' construct in double quotes:

   $ echo "$'a\tb'"
   $'a\tb'

Change BusyBox ash to do the same.  This also fixes a problem with
here documents where BusyBox ash gave an incorrect result for:

   $ cat <<EOF
   > '$'
   > EOF
   '$'

Reported-by: Timo Teras <timo.teras@iki.fi>
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoRewrite iteration through applet names to save a few bytes
Ron Yorston [Fri, 8 Apr 2016 10:57:20 +0000 (11:57 +0100)]
Rewrite iteration through applet names to save a few bytes

function                                             old     new   delta
run_applet_and_exit                                  758     755      -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3)               Total: -3 bytes

In standalone shell mode the saving increases to 17 bytes.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosed: support "-f -" idiom
Denys Vlasenko [Thu, 7 Apr 2016 22:20:36 +0000 (00:20 +0200)]
sed: support "-f -" idiom

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounrpm: clean up
Mike Frysinger [Mon, 4 Apr 2016 05:39:17 +0000 (01:39 -0400)]
unrpm: clean up

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agoundeb: clean up
Mike Frysinger [Mon, 4 Apr 2016 05:35:34 +0000 (01:35 -0400)]
undeb: clean up

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agosyslogd: minor tweaks to text
Mike Frysinger [Mon, 4 Apr 2016 05:28:32 +0000 (01:28 -0400)]
syslogd: minor tweaks to text

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokconfig/lxdialog: get ncurses CFLAGS with pkg-config
Bjørn Forsman [Sun, 14 Sep 2014 10:57:50 +0000 (12:57 +0200)]
kconfig/lxdialog: get ncurses CFLAGS with pkg-config

This makes "make menuconfig" also work on systems where ncurses is not
installed in a standard location (such as on NixOS).

This patch changes ccflags() so that it tries pkg-config first, and only
if pkg-config fails does it go back to the fallback/manual checks. This
is the same algorithm that ldflags() already uses.

Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokbuild: Make scripts executable
Michal Marek [Wed, 20 Aug 2014 14:02:59 +0000 (16:02 +0200)]
kbuild: Make scripts executable

The Makefiles call the respective interpreter explicitly, but this makes
it easier to use the scripts manually.

Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokconfig/lxdialog: rationalise the include paths where to find {.n}curses{,w}.h
Yann E. MORIN [Fri, 22 Mar 2013 22:12:16 +0000 (23:12 +0100)]
kconfig/lxdialog: rationalise the include paths where to find {.n}curses{,w}.h

The current code does this:

    if [ -f /usr/include/ncursesw/curses.h ]; then
        echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncursesw/curses.h>"'
    elif [ -f /usr/include/ncurses/ncurses.h ]; then
        echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
    elif [ -f /usr/include/ncurses/curses.h ]; then
        echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
    [...]

This is merely inconsistent:
  - adding the full path to the directory in the -I directive,
  - especially since that path is already a sub-path of the system
    include path,
  - and then repeating the sub-path in the #include directive.

Rationalise each include directive:
  - only use the filename in the #include directive,
  - keep the -I directives: they are always searched for before the
    system include path; this ensures the correct header is used.

Using the -I directives and the filename-only in #include is more in
line with how pkg-config behaves, eg.:
    $ pkg-config --cflags ncursesw
    -I/usr/include/ncursesw

This paves the way for using pkg-config for CFLAGS, too, now we use it
to find the libraries.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agomenuconfig: optionally use pkg-config to detect ncurses libs
Justin Lecher [Wed, 6 Mar 2013 13:02:01 +0000 (14:02 +0100)]
menuconfig: optionally use pkg-config to detect ncurses libs

When building ncurses with --with-termlib several symbols get moved from
libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
additionally needs to link with libtinfo.so.

The ncurses pkg-config module will be used to detect the necessary libs for
linking. If not available the old heuristic for detection of the ncurses libs
will be used.

Signed-off-by: Justin Lecher <jlec@gentoo.org>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agomenuconfig: fix extended colors ncurses support
Krzysztof Mazur [Mon, 8 Oct 2012 16:18:22 +0000 (18:18 +0200)]
menuconfig: fix extended colors ncurses support

The ncurses library allows for extended colors. The support for extended
colors support depends on wide-character support. ncurses headers
enable extended colors (NCURSES_EXT_COLORS) only when wide-character
support is enabled (NCURSES_WIDECHAR).

The "make menuconfig" uses wide-character ncursesw library, which can be
compiled with wide-character support, but does not define NCURSES_WIDECHAR
and it's using headers without wide-character (and extended colors) support.

This fixes problems with colors on systems with enabled extended colors
(like PLD Linux). Without this patch "make menuconfig" is hard to use.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokbuild: Fix gcc -x syntax
Jean Delvare [Tue, 2 Oct 2012 14:42:36 +0000 (16:42 +0200)]
kbuild: Fix gcc -x syntax

The correct syntax for gcc -x is "gcc -x assembler", not
"gcc -xassembler". Even though the latter happens to work, the former
is what is documented in the manual page and thus what gcc wrappers
such as icecream do expect.

This isn't a cosmetic change. The missing space prevents icecream from
recognizing compilation tasks it can't handle, leading to silent kernel
miscompilations.

Besides me, credits go to Michael Matz and Dirk Mueller for
investigating the miscompilation issue and tracking it down to this
incorrect -x parameter syntax.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: stable@vger.kernel.org
Cc: Bernhard Walle <bernhard@bwalle.de>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokconfig: fix check-lxdialog for DLL platforms
Yaakov Selkowitz [Wed, 13 Jun 2012 00:05:15 +0000 (19:05 -0500)]
kconfig: fix check-lxdialog for DLL platforms

Import libraries on Cygwin and MinGW/MSYS use the .dll.a suffix, so
checking this suffix is necessary to make sure ncurses will still be
found when built without static libraries.

Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokconfig: check ncursesw headers first in check-lxdialog
Yaakov Selkowitz [Wed, 13 Jun 2012 00:05:02 +0000 (19:05 -0500)]
kconfig: check ncursesw headers first in check-lxdialog

Commit 8c41e5e363db55d91aa3b1cdce4ab02ad9821de7 added a check for
ncursesw/curses.h for the case where ncurses and ncursesw are build
separately but only one is installed.  But if both are installed,
the headers ncurses/curses.h and ncursesw/curses.h differ, and since
libncursesw will be found first, so should ncursesw/curses.h.

Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agokconfig: fix menuconfig on debian lenny
Junio C Hamano [Sun, 19 Sep 2010 02:25:32 +0000 (19:25 -0700)]
kconfig: fix menuconfig on debian lenny

In 60f33b8 (kconfig: get rid of stray a.o, support ncursesw, 2006-01-15),
support to link menuconfig with ncursesw library was added.  To compute
the linker command option -l, we check "libncursesw.{so,a,dylib}" to allow
ncursesw to be used as a replacement ncurses.  However, when checking what
header file to include, we do not check /usr/include/ncursesw directory.

Add /usr/include/ncursesw to the list of directories that are checked.
With this patch, on my Debian Lenny box with libncursesw5-dev package but
not libncurses5-dev package, I can say "make menuconfig".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agoRevert "lxdialog: fix ncursesw include detection"
Mike Frysinger [Mon, 4 Apr 2016 03:58:50 +0000 (23:58 -0400)]
Revert "lxdialog: fix ncursesw include detection"

This reverts commit e91bc53d0c2e8de7dc4fbdb888ab0a4923c2b475.

Let's get back to a state that matches upstream so we can pull in all of
their fixes from the last few years.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agofind_applet_by_name: loop index should be signed
Ron Yorston [Sun, 3 Apr 2016 20:29:35 +0000 (22:29 +0200)]
find_applet_by_name: loop index should be signed

The loop

   for (j = ARRAY_SIZE(applet_nameofs)-1; j >= 0; j--) {

was intended to terminate when j goes negative, so j needs to be signed.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agowhitespace and namespace cleanups
Denys Vlasenko [Sun, 3 Apr 2016 20:24:51 +0000 (22:24 +0200)]
whitespace and namespace cleanups

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoubirmvol: Implement -N switch for ubirmvol
Sven Eisenberg [Sun, 3 Apr 2016 19:53:12 +0000 (21:53 +0200)]
ubirmvol: Implement -N switch for ubirmvol

function                                             old     new   delta
get_volid_by_name                                      -     125    +125
ubi_devnum_from_devname                                -      43     +43
ubi_tools_main                                      1215    1220      +5
packed_usage                                       30674   30655     -19
ubirename_main                                       394     221    -173
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 1/2 up/down: 173/-192)          Total: -19 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoubirename: new applet
Sven Eisenberg [Sun, 3 Apr 2016 18:12:03 +0000 (20:12 +0200)]
ubirename: new applet

function                                             old     new   delta
ubirename_main                                         -     394    +394
packed_usage                                       30611   30674     +63
applet_names                                        2530    2540     +10

Signed-off-by: Sven Eisenberg <sven.eisenberg@novero.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agolibbb: speed up error_msg functions
Denys Vlasenko [Sun, 3 Apr 2016 14:55:03 +0000 (16:55 +0200)]
libbb: speed up error_msg functions

function                                             old     new   delta
bb_verror_msg                                        386     466     +80

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agomain(): add a TODO about finding a use for _end[] area
Denys Vlasenko [Sun, 3 Apr 2016 14:06:42 +0000 (16:06 +0200)]
main(): add a TODO about finding a use for _end[] area

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agotrylink: on failure, print a hint about CONFIG_EXTRA_LDLIBS
Denys Vlasenko [Sun, 3 Apr 2016 13:38:53 +0000 (15:38 +0200)]
trylink: on failure, print a hint about CONFIG_EXTRA_LDLIBS

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agotypo fix
Denys Vlasenko [Sat, 2 Apr 2016 20:57:17 +0000 (22:57 +0200)]
typo fix

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agofind_applet_by_name: add an example of faster linear search code
Denys Vlasenko [Sat, 2 Apr 2016 20:54:23 +0000 (22:54 +0200)]
find_applet_by_name: add an example of faster linear search code

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonsenter,unshare: work around older header
Denys Vlasenko [Sat, 2 Apr 2016 17:00:44 +0000 (19:00 +0200)]
nsenter,unshare: work around older header

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosort: "-o FILE", not "-o", is the syntax
Denys Vlasenko [Sat, 2 Apr 2016 16:20:26 +0000 (18:20 +0200)]
sort: "-o FILE", not "-o", is the syntax

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonsenter,unshare: share common code; fix a bug of not closing all fds
Denys Vlasenko [Sat, 2 Apr 2016 16:06:24 +0000 (18:06 +0200)]
nsenter,unshare: share common code; fix a bug of not closing all fds

function                                             old     new   delta
xvfork_parent_waits_and_exits                          -      64     +64
exec_prog_or_SHELL                                     -      39     +39
unshare_main                                         873     810     -63
nsenter_main                                         663     596     -67
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/2 up/down: 106/-130)          Total: -27 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosort: help text does not need to say that -mST are supported but ignored
Denys Vlasenko [Sat, 2 Apr 2016 15:39:50 +0000 (17:39 +0200)]
sort: help text does not need to say that -mST are supported but ignored

Such information is useless for users of "sort --help"

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agobuild system: finer-grained selection of search speedup table.
Denys Vlasenko [Sat, 2 Apr 2016 13:18:26 +0000 (15:18 +0200)]
build system: finer-grained selection of search speedup table.

KNOWN_APPNAME_OFFSETS=8 versus KNOWN_APPNAME_OFFSETS=0:

function                                             old     new   delta
find_applet_by_name                                   55     136     +81
applet_nameofs                                         -      14     +14
run_applet_and_exit                                  757     758      +1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounshare: remove stale comment
Denys Vlasenko [Sat, 2 Apr 2016 02:44:39 +0000 (04:44 +0200)]
unshare: remove stale comment

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonsenter: new applet
Bartosz Golaszewski [Fri, 1 Apr 2016 20:17:25 +0000 (22:17 +0200)]
nsenter: new applet

function                                             old     new   delta
nsenter_main                                           -     663    +663
.rodata                                           155147  155612    +465
packed_usage                                       30536   30708    +172
nsenter_longopts                                       -     116    +116
open_by_path_or_target                                 -      58     +58
applet_names                                        2518    2526      +8
applet_main                                         2920    2928      +8
------------------------------------------------------------------------------
(add/remove: 4/0 grow/shrink: 4/0 up/down: 1490/0)           Total: 1490 bytes
   text    data     bss     dec     hex filename
 827956    4078    9080  841114   cd59a busybox_old
 829214    4086    9080  842380   cda8c busybox_unstripped

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agolibbb: two new functions: wait_for_exitstatus(pid), xfchdir(fd)
Denys Vlasenko [Fri, 1 Apr 2016 20:12:44 +0000 (22:12 +0200)]
libbb: two new functions: wait_for_exitstatus(pid), xfchdir(fd)

Bartosz Golaszewski proposed xfchdir()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agounshare: new applet
Bartosz Golaszewski [Fri, 1 Apr 2016 17:41:13 +0000 (19:41 +0200)]
unshare: new applet

function                                             old     new   delta
unshare_main                                           -     873    +873
.rodata                                           154444  155131    +687
packed_usage                                       30329   30520    +191
unshare_longopts                                       -     106    +106
mount_namespaces                                       -      99     +99
mount_or_die                                           -      51     +51
ns_list                                                -      48     +48
wait_for_exitstatus                                    -      41     +41
opt_str                                                -      17     +17
applet_names                                        2510    2518      +8
applet_main                                         2912    2920      +8
applet_suid                                           91      92      +1
applet_install_loc                                   182     183      +1
------------------------------------------------------------------------------
(add/remove: 8/0 grow/shrink: 6/0 up/down: 2131/0)           Total: 2131 bytes
   text    data     bss     dec     hex filename
 826110    4070    9080  839260   cce5c busybox_old
 827961    4078    9080  841119   cd59f busybox_unstripped

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoRename FEATURE_INITRD to LINUXRC and make it separate, not an alias to init
Denys Vlasenko [Wed, 30 Mar 2016 22:42:57 +0000 (00:42 +0200)]
Rename FEATURE_INITRD to LINUXRC and make it separate, not an alias to init

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agomake MKPASSWD a separate config option, not an automatic alias to cryptpw
Denys Vlasenko [Wed, 30 Mar 2016 22:32:39 +0000 (00:32 +0200)]
make MKPASSWD a separate config option, not an automatic alias to cryptpw

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcp: fix capitalization of two messages
Denys Vlasenko [Wed, 30 Mar 2016 16:49:45 +0000 (18:49 +0200)]
udhcp: fix capitalization of two messages

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agodhcpd: string reuse
Denys Vlasenko [Wed, 30 Mar 2016 16:44:52 +0000 (18:44 +0200)]
dhcpd: string reuse

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcp: get rid of bb_info_msg()
Denys Vlasenko [Wed, 30 Mar 2016 16:41:23 +0000 (18:41 +0200)]
udhcp: get rid of bb_info_msg()

function                                             old     new   delta
udhcpd_main                                         1501    1531     +30
d6_recv_raw_packet                                   251     264     +13
perform_d6_release                                   188     198     +10
udhcpc6_main                                        2443    2449      +6
udhcp_recv_raw_packet                                582     588      +6
udhcp_recv_kernel_packet                             132     138      +6
send_d6_renew                                        140     146      +6
d6_recv_kernel_packet                                118     124      +6
send_renew                                            77      82      +5
send_discover                                         85      90      +5
send_decline                                          84      89      +5
send_d6_select                                        97     102      +5
send_d6_discover                                     174     179      +5
perform_release                                      167     172      +5
count_lines                                           72      74      +2
udhcpc_main                                         2836    2837      +1
bb_info_msg                                          125       -    -125
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 17/4 up/down: 117/-180)         Total: -63 bytes
   text    data     bss     dec     hex filename
 924935     906   17160  943001   e6399 busybox_old
 924736     906   17160  942802   e62d2 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosetfiles: switch bb_info_msg to printf
Denys Vlasenko [Wed, 30 Mar 2016 16:17:35 +0000 (18:17 +0200)]
setfiles: switch bb_info_msg to printf

Presumably, bb_info_msg was used here for syslog logging (-l),
but there is no actual code to activate syslog logging.
Added a TODO note on that, so that selinux users would notice
and fix if needed.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosulogin: use bb_error_msg instead of bb_info_msg; better message
Denys Vlasenko [Wed, 30 Mar 2016 15:36:20 +0000 (17:36 +0200)]
sulogin: use bb_error_msg instead of bb_info_msg; better message

Historic "System Maintenance Mode" message is a tiny bit cryptic.
Let's say explicitly what we are doing: we are giving user a shell
(presumably to do some maintenance in single-user mode).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosulogin: remove suid paranoia code, explain why it's not necessary
Denys Vlasenko [Wed, 30 Mar 2016 15:27:32 +0000 (17:27 +0200)]
sulogin: remove suid paranoia code, explain why it's not necessary

function                                             old     new   delta
sulogin_main                                         325     270     -55

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agosulogin: Dorp incorrect comment about suid-ness
Denys Vlasenko [Wed, 30 Mar 2016 14:49:13 +0000 (16:49 +0200)]
sulogin: Dorp incorrect comment about suid-ness

Sulogin is not a suid app, should fail if run by non-root.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agofsck: use printf for message, not bb_info_msg
Denys Vlasenko [Wed, 30 Mar 2016 14:30:24 +0000 (16:30 +0200)]
fsck: use printf for message, not bb_info_msg

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agomkfs_vfat: use bb_error_msg for logging, not bb_info_msg
Denys Vlasenko [Wed, 30 Mar 2016 14:23:10 +0000 (16:23 +0200)]
mkfs_vfat: use bb_error_msg for logging, not bb_info_msg

This affects only a commented-out code section which searches for bad blocks

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agozcip: use bb_error_msg for logging, not bb_info_msg
Denys Vlasenko [Wed, 30 Mar 2016 14:22:13 +0000 (16:22 +0200)]
zcip: use bb_error_msg for logging, not bb_info_msg

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoReplace a few more bb_info_msg's by bb_error_msg or printf
Denys Vlasenko [Wed, 30 Mar 2016 14:20:28 +0000 (16:20 +0200)]
Replace a few more bb_info_msg's by bb_error_msg or printf

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoUse bb_error_msg instead of bb_info_msg in all commented-out debug printouts
Denys Vlasenko [Wed, 30 Mar 2016 14:04:37 +0000 (16:04 +0200)]
Use bb_error_msg instead of bb_info_msg in all commented-out debug printouts

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoapplet_tables: save space by removing applet name offsets
Ron Yorston [Tue, 29 Mar 2016 22:42:05 +0000 (00:42 +0200)]
applet_tables: save space by removing applet name offsets

The array applet_nameofs consumes two bytes per applet.  It encodes

   nofork/noexec flags
   suid flags
   the offset of the applet name in the applet_name string

Change the applet_table build tool to store the flags in two separate
arrays (applet_flags and applet_suid).  Replace applet_nameofs[] with a
smaller version that only stores a limited number of offsets.

This requires changes to the macros APPLET_IS_NOFORK, APPLET_IS_NOEXEC
and APPLET_SUID.

   According to Valgrind the original find_applet_by_name required
   353 cycles per call, averaged over all names.  Adjusting the number
   of known offsets allows space to be traded off against execution time:

      KNOWN_OFFSETS     cycles     bytes (wrt KNOWN_OFFSETS = 0)

           0             9057        -
           2             4604       32
           4             2407       75
           8             1342       98
          16              908      130
          32              884      194

   This patch uses KNOWN_OFFSETS = 8.

v2:
   Remove some dead code from the applet_table tool;
   Treat the applet in the middle of the table as a special case.

v3:
   Use the middle applet to adjust the start of the linear search as
   well as the last applet found.

v4:
   Use an augmented linear search in find_applet_by_name.
   Drop the special treatment of the middle name from get_applet_name:
   most of the advantage now derives from the last stored value.

v5:
   Don't store index in applet_nameofs, it can be calculated.

v6:
   Tweaks by Denys

function                                             old     new   delta
find_applet_by_name                                   25     125    +100
applet_suid                                            -      92     +92
run_applet_no_and_exit                               452     460      +8
run_applet_and_exit                                  695     697      +2
applet_name_compare                                   31       -     -31
applet_nameofs                                       734      14    -720
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 3/1 up/down: 202/-751)         Total: -549 bytes
   text       data        bss        dec        hex    filename
 925464        906      17160     943530      e65aa    busybox_old
 924915        906      17160     942981      e6385    busybox_unstripped

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoRevert "networking: properly initialize ipv6 scope id for printing it"
Denys Vlasenko [Tue, 29 Mar 2016 17:27:00 +0000 (19:27 +0200)]
Revert "networking: properly initialize ipv6 scope id for printing it"

This reverts commit 2fb63292f7083fb259a3f8d8ee70ef8acdaed626.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agomodprobe: skip non-.conf files only in subdirectories
Denys Vlasenko [Tue, 29 Mar 2016 17:23:55 +0000 (19:23 +0200)]
modprobe: skip non-.conf files only in subdirectories

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoumount: build fix for older glibc
Denys Vlasenko [Mon, 28 Mar 2016 20:23:33 +0000 (22:23 +0200)]
umount: build fix for older glibc

Based on a patch by Veli-Pekka Peltola <veli-pekka.peltola@ray.fi>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonetworking: properly initialize ipv6 scope id for printing it
Timo Teräs [Mon, 28 Mar 2016 20:16:48 +0000 (22:16 +0200)]
networking: properly initialize ipv6 scope id for printing it

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agogrep: make errors other than "not found" result in exit code 2. Closes 8796
Denys Vlasenko [Mon, 28 Mar 2016 20:12:09 +0000 (22:12 +0200)]
grep: make errors other than "not found" result in exit code 2. Closes 8796

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoash_test: ignore generated files
Mike Frysinger [Tue, 22 Mar 2016 22:15:24 +0000 (18:15 -0400)]
ash_test: ignore generated files

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agoash_test: printenv: fix missing includes
Mike Frysinger [Tue, 22 Mar 2016 22:15:14 +0000 (18:15 -0400)]
ash_test: printenv: fix missing includes

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agoash: fix corruption of ${#var} if $var contains UTF-8 characters
Ron Yorston [Fri, 18 Mar 2016 11:29:19 +0000 (11:29 +0000)]
ash: fix corruption of ${#var} if $var contains UTF-8 characters

As reported in bug 8506:

   $ X=abcdÉfghÍjklmnÓpqrstÚvwcyz
   $ echo ${#X}
   abcd26

The result should be 26.

This regression was introduced by:

   <d68d1fb> 2015-05-18 [Ron Yorston]  ash: code shrink around varvalue

The length in characters was being used to discard the contents of
the variable instead of the length in bytes.

URL: https://bugs.busybox.net/8506
Reported-by: Martijn Dekker <martijn@inlv.org>
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8 years agowget: make -T timeout work on header reads too. Closes 8636
Denys Vlasenko [Thu, 17 Mar 2016 14:58:16 +0000 (15:58 +0100)]
wget: make -T timeout work on header reads too. Closes 8636

function                                             old     new   delta
set_alarm                                              -      27     +27
fgets_and_trim                                        76      92     +16
wget_main                                           2610    2616      +6
open_socket                                           64      54     -10

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonmeter: reinstate and document -d-1
Denys Vlasenko [Tue, 15 Mar 2016 16:54:17 +0000 (17:54 +0100)]
nmeter: reinstate and document -d-1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonmeter: remove undocumented %NNNd specifier
Denys Vlasenko [Tue, 15 Mar 2016 15:13:23 +0000 (16:13 +0100)]
nmeter: remove undocumented %NNNd specifier

function                                             old     new   delta
nmeter_main                                          707     745     +38
init_functions                                        48      44      -4
init_delay                                            63       -     -63
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 38/-67)            Total: -29 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonmeter: simple code shrink here and there
Denys Vlasenko [Tue, 15 Mar 2016 15:06:29 +0000 (16:06 +0100)]
nmeter: simple code shrink here and there

function                                             old     new   delta
nmeter_main                                          709     707      -2
init_cr                                               15      12      -3
collect_time                                         141     131     -10
collect_cpu                                          610     593     -17
init_cpu                                              82      63     -19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/5 up/down: 0/-51)             Total: -51 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonmeter: convert field list to bit list
Denys Vlasenko [Tue, 15 Mar 2016 14:52:40 +0000 (15:52 +0100)]
nmeter: convert field list to bit list

function                                             old     new   delta
rdval                                                 34     157    +123
collect_int                                          123     122      -1
collect_thread_nr                                     65      62      -3
collect_blk                                          559     552      -7
collect_if                                           207     199      -8
collect_fork                                         119     111      -8
collect_ctx                                          119     111      -8
collect_fd                                            81      71     -10
collect_swp                                          120     107     -13
collect_cpu                                          623     610     -13
collect_mem                                          371     339     -32
rdval_loadavg                                         38       -     -38
vrdval                                               170       -    -170
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 1/10 up/down: 123/-311)        Total: -188 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonmeter: code shrink
Denys Vlasenko [Tue, 15 Mar 2016 14:28:49 +0000 (15:28 +0100)]
nmeter: code shrink

function                                             old     new   delta
put                                                   52      43      -9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agonmeter: fix a bug with unterminated varargs
Denys Vlasenko [Tue, 15 Mar 2016 14:22:42 +0000 (15:22 +0100)]
nmeter: fix a bug with unterminated varargs

function                                             old     new   delta
collect_mem                                          361     371     +10
collect_swp                                          116     120      +4
vrdval                                               168     170      +2
collect_thread_nr                                     63      65      +2
collect_int                                          121     123      +2
collect_if                                           205     207      +2
collect_fork                                         117     119      +2
collect_fd                                            79      81      +2
collect_ctx                                          117     119      +2
collect_cpu                                          621     623      +2
collect_blk                                          557     559      +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 11/0 up/down: 32/0)              Total: 32 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoNew example config: android_502_defconfig
Denys Vlasenko [Mon, 14 Mar 2016 21:28:53 +0000 (22:28 +0100)]
New example config: android_502_defconfig

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agomore bionic fixes
Denys Vlasenko [Mon, 14 Mar 2016 18:34:15 +0000 (19:34 +0100)]
more bionic fixes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agofixes for problems found by bionic build
Denys Vlasenko [Mon, 14 Mar 2016 17:23:33 +0000 (18:23 +0100)]
fixes for problems found by bionic build

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcpc: fix a warning in debug code
Denys Vlasenko [Thu, 10 Mar 2016 23:26:58 +0000 (00:26 +0100)]
udhcpc: fix a warning in debug code

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcp: fix a SEGV on malformed RFC1035-encoded domain name
Denys Vlasenko [Thu, 10 Mar 2016 10:47:58 +0000 (11:47 +0100)]
udhcp: fix a SEGV on malformed RFC1035-encoded domain name

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agorenice: tweak help text
Denys Vlasenko [Mon, 7 Mar 2016 14:21:54 +0000 (15:21 +0100)]
renice: tweak help text

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agols: fix columnar output. Closes 8731
Denys Vlasenko [Sun, 6 Mar 2016 16:53:11 +0000 (17:53 +0100)]
ls: fix columnar output. Closes 8731

In coreutils/ls.c, 1.19 introduced commit
2f7d9e8903029b1b5e51a15f9cb0dcb6ca17c3ac, removing the variable tabstops and
hard coding the column separation to 2 characters, but was not done correctly.
The column_width assumes a gap of 1 character, so the computed number of
columns exceeds the terminal width when many small files are encountered.

A minor problem but surprisingly annoying.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoinotifyd: swap meaning of 'y' and 'm' events in help text. Closes 8726
Denys Vlasenko [Sun, 6 Mar 2016 16:35:16 +0000 (17:35 +0100)]
inotifyd: swap meaning of 'y' and 'm' events in help text. Closes 8726

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcpc: do not use -t NUM for counting "select" packets, use 3
Denys Vlasenko [Fri, 4 Mar 2016 16:00:56 +0000 (17:00 +0100)]
udhcpc: do not use -t NUM for counting "select" packets, use 3

Otherwise, "-t 0" usage may end up sending them forever
if server does not respond.

function                                             old     new   delta
udhcpc_main                                         2846    2836     -10

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agontpd: add experimental patch
Denys Vlasenko [Fri, 4 Mar 2016 06:36:04 +0000 (07:36 +0100)]
ntpd: add experimental patch

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agontpd: if peer does not reply anymore, try re-resolving its hostname
Denys Vlasenko [Fri, 4 Mar 2016 06:26:08 +0000 (07:26 +0100)]
ntpd: if peer does not reply anymore, try re-resolving its hostname

function                                             old     new   delta
ntpd_main                                           1053    1130     +77
add_peers                                            166     195     +29

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agontpd: do not use a peer more than once (say, if two peers resolve to the same IP)
Denys Vlasenko [Fri, 4 Mar 2016 06:06:53 +0000 (07:06 +0100)]
ntpd: do not use a peer more than once (say, if two peers resolve to the same IP)

function                                             old     new   delta
add_peers                                             98     166     +68

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agontpd: more informative poll lowering message
Denys Vlasenko [Thu, 3 Mar 2016 21:01:23 +0000 (22:01 +0100)]
ntpd: more informative poll lowering message

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoifupdowm: fix "warning: unused variable 'iface_list'"
Denys Vlasenko [Thu, 3 Mar 2016 01:19:16 +0000 (02:19 +0100)]
ifupdowm: fix "warning: unused variable 'iface_list'"

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agodhcpc: Use client IP address as source address for DHCP renew/rebind messages
Hans Dedecker [Thu, 18 Feb 2016 11:27:07 +0000 (12:27 +0100)]
dhcpc: Use client IP address as source address for DHCP renew/rebind messages

RFC2131 paragraph 4.1 states DHCP messages broadcast by a client prior to
that client obtaining its IP address must have the source IP address
field in the header set to 0.
Request messages transmitted in renewing and rebinding state need to use
the obtained IP address as source IP address in the header; this behavior
lines up with other implementations like ISC dhcp client.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcpd: keep expired leases at startup
Christian Lindeberg [Tue, 1 Mar 2016 18:23:22 +0000 (19:23 +0100)]
udhcpd: keep expired leases at startup

Let udhcpd retain the information about expired leases when restarting
so that the leases are reserved until they possibly become the oldest
expired lease.

This reduces the frequency of IP address changes for example when the
DHCP server and a group of clients, who do not store and request their
previously offered IP address across restarts, are collectively restarted
and the startup order of the clients are not guaranteed.

Signed-off-by: Christian Lindeberg <christian.lindeberg@axis.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoifupdown: allow duplicate interface definitions
Nicolas Cavallari [Tue, 1 Mar 2016 17:59:08 +0000 (18:59 +0100)]
ifupdown: allow duplicate interface definitions

This patch allow to have multiple interface definitions, much like
Debian's ifupdown.  More specifically, it removes the check for a
duplicate definition, so the impact on binary size should be fairly
minimal.

This configuration:

iface eth0 inet static
        address 192.168.0.15
        netmask 255.255.0.0
        gateway 192.168.0.1

iface eth0 inet static
        address 10.0.0.1
        netmask 255.255.255.0

Will add two addresses to eth0 if ip is used.  If ifconfig is used,
the standards methods will likely not stack, but the administrator may
still use the manual method.  The DHCP method may work depending on the
DHCP client in use.

This is a fairly advanced feature for power users who knows what they
are doing.  There are not many other network configuration systems that
allows multiple addresses on an interface.

Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcpc: fix OPTION_6RD parsing (could overflow its malloced buffer)
Denys Vlasenko [Fri, 26 Feb 2016 14:54:56 +0000 (15:54 +0100)]
udhcpc: fix OPTION_6RD parsing (could overflow its malloced buffer)

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agoudhcp: trivial shrink
Denys Vlasenko [Fri, 26 Feb 2016 13:56:18 +0000 (14:56 +0100)]
udhcp: trivial shrink

function                                             old     new   delta
dname_dec                                            337     332      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
8 years agotaskset: fix non-fancy cpuset printing on big-endian
Arnout Vandecappelle (Essensium/Mind) [Sun, 14 Feb 2016 18:04:09 +0000 (19:04 +0100)]
taskset: fix non-fancy cpuset printing on big-endian

The non-fancy version of the from_cpuset uses CPU_SETSIZE as if it
represents the number of bytes in the cpuset, while it is actually
the number of bits. This leads to out-of-bounds accesses on the
cpu_set_t in the big-endian case. Basically all uses of CPU_SETSIZE
have to be divided by 8. This is done correctly in the fancy version
of from_cpuset.

In addition, the big-endian case is completely wrong to begin with.
All standard C libraries that I know of implement cpu_set_t as an
unsigned long array, so both for big and little endian, the least
significant bits are in the beginning of the array. Therefore, the
approach taken for the little endian case is equally valid. We only
need special handling for big endian when CPU_SETSIZE is large and
we use an unsigned long long to get more bits out.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>