oweals/busybox.git
7 years agoipcalc: trim help text
Denys Vlasenko [Mon, 7 Aug 2017 22:49:48 +0000 (00:49 +0200)]
ipcalc: trim help text

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoipcalc,rdev: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 22:42:15 +0000 (00:42 +0200)]
ipcalc,rdev: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agodumpleases: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 21:30:22 +0000 (23:30 +0200)]
dumpleases: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoexpr: make it NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 21:23:18 +0000 (23:23 +0200)]
expr: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agofreeramdisk: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 21:17:14 +0000 (23:17 +0200)]
freeramdisk: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agolosetup: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 21:14:49 +0000 (23:14 +0200)]
losetup: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoifenslave: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 20:31:51 +0000 (22:31 +0200)]
ifenslave: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoifenslave: remove longopts from --help text
Denys Vlasenko [Mon, 7 Aug 2017 20:30:59 +0000 (22:30 +0200)]
ifenslave: remove longopts from --help text

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agofatattr: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 20:21:54 +0000 (22:21 +0200)]
fatattr: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agodf: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 20:19:17 +0000 (22:19 +0200)]
df: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agounxz: get_le32 macro is obviously wrong
Denys Vlasenko [Mon, 7 Aug 2017 18:56:54 +0000 (20:56 +0200)]
unxz: get_le32 macro is obviously wrong

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agodnsdomainname,hostname: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 18:34:26 +0000 (20:34 +0200)]
dnsdomainname,hostname: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonoexec: consolidate code
Denys Vlasenko [Mon, 7 Aug 2017 17:24:57 +0000 (19:24 +0200)]
noexec: consolidate code

function                                             old     new   delta
run_noexec_applet_and_exit                             -      61     +61
find_applet_by_name                                  128     124      -4
run_applet_no_and_exit                               441     434      -7
tryexec                                              169     152     -17
pseudo_exec_argv                                     338     321     -17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/6 up/down: 61/-48)             Total: 13 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonoexec: do GETOPT_RESET() before entering APPLET_main()
Denys Vlasenko [Mon, 7 Aug 2017 16:59:35 +0000 (18:59 +0200)]
noexec: do GETOPT_RESET() before entering APPLET_main()

hush -c 'yes | head -1' was not happy.

function                                             old     new   delta
tryexec                                              159     169     +10
pseudo_exec_argv                                     328     338     +10

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonoexec: set comm field for noexecs
Denys Vlasenko [Mon, 7 Aug 2017 16:45:33 +0000 (18:45 +0200)]
noexec: set comm field for noexecs

function                                             old     new   delta
set_task_comm                                          -      18     +18
tryexec                                              152     159      +7
pseudo_exec_argv                                     321     328      +7
main                                                 106      97      -9
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/2 up/down: 34/-13)             Total: 23 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agofree,stat: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 16:18:09 +0000 (18:18 +0200)]
free,stat: make NOEXEC

pkill/pgrep/pidof uncovered another quirk: what about noexec's _process names_?

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetconsole: much better help text
Denys Vlasenko [Mon, 7 Aug 2017 15:36:41 +0000 (17:36 +0200)]
setconsole: much better help text

Was:

    Usage: setconsole [-r] [DEVICE]

    Redirect system console output to DEVICE (default: /dev/tty)

        -r Reset output to /dev/console

Now:

    Usage: setconsole [-r] [DEVICE]

    Make writes to /dev/console appear on DEVICE (default: /dev/tty).
    Does not redirect kernel log output or reads from /dev/console.

        -r Reset: writes to /dev/console go to kernel log tty(s)

function                                             old     new   delta
packed_usage                                       31766   31777     +11
setconsole_main                                       84      78      -6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agousers,w,who,uptime,renice: make NOEXEC
Denys Vlasenko [Mon, 7 Aug 2017 14:47:34 +0000 (16:47 +0200)]
users,w,who,uptime,renice: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoubi tools: ubiupdatevol supports "-" input and actually respects -s SIZE
Denys Vlasenko [Mon, 7 Aug 2017 14:00:25 +0000 (16:00 +0200)]
ubi tools: ubiupdatevol supports "-" input and actually respects -s SIZE

Decided to not make any flash applets NOEXEC.
Minor robustifications here and there. Better error messages. Save on strings:

function                                             old     new   delta
ubi_tools_main                                      1235    1288     +53
ubi_get_volid_by_name                                125     133      +8
ubirename_main                                       198     204      +6
get_num_from_file                                     90      94      +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 71/0)               Total: 71 bytes
   text    data     bss     dec     hex filename
 915696     485    6880  923061   e15b5 busybox_old
 915670     485    6880  923035   e159b busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoubiupdatevol: fix bug with -sSIZE: was ignoring IMAGE_FILE
Denys Vlasenko [Mon, 7 Aug 2017 01:24:29 +0000 (03:24 +0200)]
ubiupdatevol: fix bug with -sSIZE: was ignoring IMAGE_FILE

While at it, fix help text

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoubi_tools: a bit smaller applet resolution code
Denys Vlasenko [Mon, 7 Aug 2017 00:55:33 +0000 (02:55 +0200)]
ubi_tools: a bit smaller applet resolution code

function                                             old     new   delta
ubi_tools_main                                      1241    1235      -6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoscript: -f means "flush", not "fsync"
Denys Vlasenko [Mon, 7 Aug 2017 00:21:34 +0000 (02:21 +0200)]
script: -f means "flush", not "fsync"

function                                             old     new   delta
packed_usage                                       31765   31768      +3
script_main                                         1102    1082     -20

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoscript: make -t[FILE] compatible with util-linux
Denys Vlasenko [Mon, 7 Aug 2017 00:12:36 +0000 (02:12 +0200)]
script: make -t[FILE] compatible with util-linux

function                                             old     new   delta
script_main                                         1056    1102     +46
packed_usage                                       31736   31765     +29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 75/0)               Total: 75 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoscript: make -t independent of scriptreplay
Denys Vlasenko [Sun, 6 Aug 2017 23:53:17 +0000 (01:53 +0200)]
script: make -t independent of scriptreplay

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoadd/remove-shell,add/deluser,add/delgroup: make them NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 22:28:15 +0000 (00:28 +0200)]
add/remove-shell,add/deluser,add/delgroup: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonbd-client: make it NOEXEC, stop using argc
Denys Vlasenko [Sun, 6 Aug 2017 19:53:39 +0000 (21:53 +0200)]
nbd-client: make it NOEXEC, stop using argc

function                                             old     new   delta
nbdclient_main                                       484     492      +8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agomakedevs: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 19:47:07 +0000 (21:47 +0200)]
makedevs: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosvc: remove superfluout INIT_G()
Denys Vlasenko [Sun, 6 Aug 2017 19:29:51 +0000 (21:29 +0200)]
svc: remove superfluout INIT_G()

function                                             old     new   delta
sv                                                  1297    1296      -1
svc_main                                             162     145     -17

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosv,svc: fix NOEXEC fallout
Denys Vlasenko [Sun, 6 Aug 2017 19:23:03 +0000 (21:23 +0200)]
sv,svc: fix NOEXEC fallout

function                                             old     new   delta
svc_main                                             145     162     +17
sv                                                  1280    1297     +17
status                                               139     133      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 34/-6)              Total: 28 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agostty: fix bb_common_bufsiz1 use in NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 18:55:56 +0000 (20:55 +0200)]
stty: fix bb_common_bufsiz1 use in NOEXEC

function                                             old     new   delta
stty_main                                           1211    1221     +10
do_display                                           379     370      -9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoreadprofile: do not close/free just before exiting
Denys Vlasenko [Sun, 6 Aug 2017 18:39:27 +0000 (20:39 +0200)]
readprofile: do not close/free just before exiting

function                                             old     new   delta
readprofile_main                                    1784    1762     -22

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoblkdiscard: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 18:20:47 +0000 (20:20 +0200)]
blkdiscard: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoblkid: make it NOEXEC, make FEATURE_BLKID_TYPE=y default
Denys Vlasenko [Sun, 6 Aug 2017 18:16:28 +0000 (20:16 +0200)]
blkid: make it NOEXEC, make FEATURE_BLKID_TYPE=y default

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agobrctl: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 18:14:02 +0000 (20:14 +0200)]
brctl: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoash: do not set a signal to SIG_DFL if it already is
Denys Vlasenko [Sun, 6 Aug 2017 18:06:19 +0000 (20:06 +0200)]
ash: do not set a signal to SIG_DFL if it already is

function                                             old     new   delta
setsignal                                            312     338     +26

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoadjtimex: make it NOFORK
Denys Vlasenko [Sun, 6 Aug 2017 18:00:21 +0000 (20:00 +0200)]
adjtimex: make it NOFORK

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoadjtimex: zero-fill whole structure, to be on the safe side
Denys Vlasenko [Sun, 6 Aug 2017 17:46:21 +0000 (19:46 +0200)]
adjtimex: zero-fill whole structure, to be on the safe side

function                                             old     new   delta
adjtimex_main                                        395     406     +11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoraidautorun: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 17:08:46 +0000 (19:08 +0200)]
raidautorun: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoloadfont,setfont: make them NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 17:05:45 +0000 (19:05 +0200)]
loadfont,setfont: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetconsole: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 16:56:25 +0000 (18:56 +0200)]
setconsole: make it NOEXEC

BTW, I failed to make it do what it meant to do.
ioctl appears to succeed, but kernel's output is not coming
to the specified console (tried on VT consoles too).
OTOH, setlogcons does work...

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetconsole: since SUSE version has no -r, nuke our --reset longopt
Denys Vlasenko [Sun, 6 Aug 2017 16:54:16 +0000 (18:54 +0200)]
setconsole: since SUSE version has no -r, nuke our --reset longopt

Why we even bother inventing incompatible longopts?!

function                                             old     new   delta
packed_usage                                       31734   31738      +4
static.setconsole_longopts                             9       -      -9
setconsole_main                                       94      84     -10
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 4/-19)             Total: -15 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetkeycodes: make it NOEXEC, better --help text
Denys Vlasenko [Sun, 6 Aug 2017 16:29:25 +0000 (18:29 +0200)]
setkeycodes: make it NOEXEC, better --help text

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetlogcons: make it NOEXEC, better --help text
Denys Vlasenko [Sun, 6 Aug 2017 16:17:58 +0000 (18:17 +0200)]
setlogcons: make it NOEXEC, better --help text

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetserial: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 16:06:46 +0000 (18:06 +0200)]
setserial: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosetserial: code shrink, better --help text
Denys Vlasenko [Sun, 6 Aug 2017 15:59:37 +0000 (17:59 +0200)]
setserial: code shrink, better --help text

function                                             old     new   delta
packed_usage                                       31747   31749      +2
setserial_main                                      1152    1132     -20

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoslattach: code shrink, better --help text
Denys Vlasenko [Sun, 6 Aug 2017 15:14:09 +0000 (17:14 +0200)]
slattach: code shrink, better --help text

function                                             old     new   delta
tcsetattr_serial_or_warn                               -      34     +34
static.int_N_SLIP                                      -       4      +4
restore_state_and_exit                               123     117      -6
packed_usage                                       31774   31747     -27
set_termios_state_or_warn                             42       -     -42
slattach_main                                        673     624     -49
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 0/3 up/down: 38/-124)           Total: -86 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonameif: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 12:15:24 +0000 (14:15 +0200)]
nameif: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoTweak outdated documentation and comments
Denys Vlasenko [Sun, 6 Aug 2017 12:03:27 +0000 (14:03 +0200)]
Tweak outdated documentation and comments

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agotunctl: make it NOEXEC
Denys Vlasenko [Sun, 6 Aug 2017 10:28:00 +0000 (12:28 +0200)]
tunctl: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agokbd_more: make it NOEXEC, remove redundant opt clearing
Denys Vlasenko [Sun, 6 Aug 2017 10:23:04 +0000 (12:23 +0200)]
kbd_more: make it NOEXEC, remove redundant opt clearing

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agokbd_mode: try harder to find console device if -C TTY is not given
Denys Vlasenko [Sun, 6 Aug 2017 10:17:46 +0000 (12:17 +0200)]
kbd_mode: try harder to find console device if -C TTY is not given

Was (under X):
$ ./busybox_old kbd_mode
kbd_mode: ioctl 0x4b44 failed: Inappropriate ioctl for device
Now:
$ ./busybox kbd_mode
The keyboard is in off mode

function                                             old     new   delta
kbd_mode_main                                        166     174      +8
packed_usage                                       31782   31764     -18
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 8/-18)             Total: -10 bytes
   text    data     bss     dec     hex filename
 915757     485    6880  923122   e15f2 busybox_old
 915747     485    6880  923112   e15e8 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agokbd_mode: show "off" mode too
Denys Vlasenko [Sun, 6 Aug 2017 09:58:46 +0000 (11:58 +0200)]
kbd_mode: show "off" mode too

function                                             old     new   delta
kbd_mode_main                                        156     166     +10

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agolspci,lsscsi,lsusb: make them NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 21:28:19 +0000 (23:28 +0200)]
lspci,lsscsi,lsusb: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoumount: make it NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 21:21:02 +0000 (23:21 +0200)]
umount: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agopstree: make it NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 20:25:00 +0000 (22:25 +0200)]
pstree: make it NOEXEC

While at it, documet why ps can't be NOEXEC.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agochattr,lsattr,tune2fs: make them NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 18:38:04 +0000 (20:38 +0200)]
chattr,lsattr,tune2fs: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agochattr: fix option parsing to accept more cryptic option combos
Denys Vlasenko [Sat, 5 Aug 2017 18:33:48 +0000 (20:33 +0200)]
chattr: fix option parsing to accept more cryptic option combos

function                                             old     new   delta
chattr_main                                          286     289      +3
packed_usage                                       31793   31761     -32

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosysctl: make it NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 16:23:10 +0000 (18:23 +0200)]
sysctl: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosysctl: recognize ";comment" and "<whitespace>#comment" lines
Denys Vlasenko [Sat, 5 Aug 2017 16:20:34 +0000 (18:20 +0200)]
sysctl: recognize ";comment" and "<whitespace>#comment" lines

function                                             old     new   delta
config_read                                          639     699     +60

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agolibbb: make trim() return pointer to terminating NUL
Denys Vlasenko [Sat, 5 Aug 2017 15:50:35 +0000 (17:50 +0200)]
libbb: make trim() return pointer to terminating NUL

function                                             old     new   delta
trim                                                  80      90     +10
angle_address                                         56      50      -6
sysctl_main                                          282     273      -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: +10/-15)           Total:  -5 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosysctl: fix file parsing, do not require -w for VAR=VAL
Denys Vlasenko [Sat, 5 Aug 2017 11:45:22 +0000 (13:45 +0200)]
sysctl: fix file parsing, do not require -w for VAR=VAL

function                                             old     new   delta
sysctl_act_on_setting                                  -     451    +451
sysctl_main                                          222     282     +60
packed_usage                                       31744   31793     +49
config_read                                          604     639     +35
sysctl_act_recursive                                 612     163    -449
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/1 up/down: 595/-449)          Total: 146 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agocryptpw, mkpasswd: make them NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 00:08:23 +0000 (02:08 +0200)]
cryptpw, mkpasswd: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agochvt, deallocvt, dumpkmap, fgconsole, loadkmap: make them NOEXEC
Denys Vlasenko [Sat, 5 Aug 2017 00:02:31 +0000 (02:02 +0200)]
chvt, deallocvt, dumpkmap, fgconsole, loadkmap: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agopivot_root: make it NOFORK
Denys Vlasenko [Fri, 4 Aug 2017 23:51:12 +0000 (01:51 +0200)]
pivot_root: make it NOFORK

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agopartprobe: make it NOEXEC
Denys Vlasenko [Fri, 4 Aug 2017 23:46:39 +0000 (01:46 +0200)]
partprobe: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosv, svc: make them NOEXEC
Denys Vlasenko [Fri, 4 Aug 2017 23:42:08 +0000 (01:42 +0200)]
sv, svc: make them NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosvc: fix a case where with more than option, getopt() state is not reset
Denys Vlasenko [Fri, 4 Aug 2017 23:38:55 +0000 (01:38 +0200)]
svc: fix a case where with more than option, getopt() state is not reset

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoblockdev, fsfreeze, fstrim, mountpoint: make NOEXEC
Denys Vlasenko [Fri, 4 Aug 2017 23:29:12 +0000 (01:29 +0200)]
blockdev, fsfreeze, fstrim, mountpoint: make NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agolibbb: use _exit, not exit, in bb_daemonize_or_rexec()
Denys Vlasenko [Fri, 4 Aug 2017 21:04:17 +0000 (23:04 +0200)]
libbb: use _exit, not exit, in bb_daemonize_or_rexec()

By the time we reach exit in parent, child already exited or execed.
We should not re-run libc cleanup code.

While at it, introduce bb_daemon_helper() and add a few comments.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agostty: make in NOEXEC
Denys Vlasenko [Fri, 4 Aug 2017 18:07:19 +0000 (20:07 +0200)]
stty: make in NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agomake 17 state-changing execing applets (ex: "nice PROG ARGS") noexec
Denys Vlasenko [Fri, 4 Aug 2017 17:55:01 +0000 (19:55 +0200)]
make 17 state-changing execing applets (ex: "nice PROG ARGS") noexec

The applets with "<applet> [opts] PROG ARGS" API very quickly exec
another program, noexec is okay for them:

 chpst/envdir/envuidgid/softlimit/setuidgid
 chroot
 chrt
 ionice
 nice
 nohup
 setarch/linux32/linux64
 taskset
 cttyhack

"reset" and "sulogin" applets don't have this form, but also exec
another program at once, thus made noexec too.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agomesg: make in NOFORK
Denys Vlasenko [Fri, 4 Aug 2017 17:16:01 +0000 (19:16 +0200)]
mesg: make in NOFORK

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agopmap: tweak help text, show usage if no params are given
Denys Vlasenko [Fri, 4 Aug 2017 16:36:55 +0000 (18:36 +0200)]
pmap: tweak help text, show usage if no params are given

Noticed while auditing nofork/noexec status

function                                             old     new   delta
pmap_main                                             70      80     +10
packed_usage                                       31747   31744      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agorunlevel: make it NOEXEC
Denys Vlasenko [Fri, 4 Aug 2017 15:59:46 +0000 (17:59 +0200)]
runlevel: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agomktemp: make it NOEXEC
Denys Vlasenko [Fri, 4 Aug 2017 15:39:05 +0000 (17:39 +0200)]
mktemp: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agochat: trim help text
Denys Vlasenko [Fri, 4 Aug 2017 15:36:16 +0000 (17:36 +0200)]
chat: trim help text

Noticed while auditing nofork/noexec status

function                                             old     new   delta
packed_usage                                       31777   31747     -30

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agogetopt32: move support for "always treat first arg as option" to users (tar/ar)
Denys Vlasenko [Fri, 4 Aug 2017 14:46:17 +0000 (16:46 +0200)]
getopt32: move support for "always treat first arg as option" to users (tar/ar)

Now getopt() never leaks (and never performs) any xmalloc's.

function                                             old     new   delta
ar_main                                              522     556     +34
tar_main                                             986    1014     +28
getopt32                                            1458    1350    -108
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 62/-108)           Total: -46 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agogetopt32: factor out code to treat all args as options
Denys Vlasenko [Fri, 4 Aug 2017 14:23:42 +0000 (16:23 +0200)]
getopt32: factor out code to treat all args as options

Working towards making getopt32() xmalloc-free

function                                             old     new   delta
make_all_argv_opts                                     -      58     +58
top_main                                             914     912      -2
getopt32                                            1517    1458     -59
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/2 up/down: 58/-61)             Total: -3 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agotweak NOFORK_NOEXEC.lst
Denys Vlasenko [Fri, 4 Aug 2017 14:01:39 +0000 (16:01 +0200)]
tweak NOFORK_NOEXEC.lst

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoash: BASH_XTRACEFD bashism
Denys Vlasenko [Fri, 4 Aug 2017 13:24:49 +0000 (15:24 +0200)]
ash: BASH_XTRACEFD bashism

Based on patch by Johannes Schindelin <johannes.schindelin@gmx.de>

function                                             old     new   delta
evalcommand                                         1447    1500     +53

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoash: remove no-longer-used variable
Johannes Schindelin [Fri, 4 Aug 2017 10:16:46 +0000 (12:16 +0200)]
ash: remove no-longer-used variable

As of 035486c75 (ash: significant overhaul of redirect saving logic,
2017-07-31), the sv_pos variable is no longer used (just assigned to,
with no further effect).

Let's just remove it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoash: INT_OFF/INT_ON around run_nofork_applet()
Denys Vlasenko [Fri, 4 Aug 2017 12:50:03 +0000 (14:50 +0200)]
ash: INT_OFF/INT_ON around run_nofork_applet()

function                                             old     new   delta
evalcommand                                         1441    1447      +6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agosheel: improve comments on signal handling
Denys Vlasenko [Fri, 4 Aug 2017 12:28:16 +0000 (14:28 +0200)]
sheel: improve comments on signal handling

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agomodutils: make them NOEXEC except depmod
Denys Vlasenko [Fri, 4 Aug 2017 00:56:39 +0000 (02:56 +0200)]
modutils: make them NOEXEC except depmod

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agomicrocom: require exactly one non-option
Denys Vlasenko [Fri, 4 Aug 2017 00:01:45 +0000 (02:01 +0200)]
microcom: require exactly one non-option

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoash: add a fixme comment at run_nofork_applet
Denys Vlasenko [Thu, 3 Aug 2017 17:56:29 +0000 (19:56 +0200)]
ash: add a fixme comment at run_nofork_applet

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonofork: fix a bug uncovered by hush testsuite (forgotten fflush)
Denys Vlasenko [Thu, 3 Aug 2017 17:52:47 +0000 (19:52 +0200)]
nofork: fix a bug uncovered by hush testsuite (forgotten fflush)

function                                             old     new   delta
run_nofork_applet                                    280     287      +7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agogetopt: make it NOEXEC
Denys Vlasenko [Thu, 3 Aug 2017 17:30:21 +0000 (19:30 +0200)]
getopt: make it NOEXEC

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonew NOFORKs: pwdx,kill[all5],ttysize,realpath,readlink NOEXECs: date,resize
Denys Vlasenko [Thu, 3 Aug 2017 17:00:01 +0000 (19:00 +0200)]
new NOFORKs: pwdx,kill[all5],ttysize,realpath,readlink NOEXECs: date,resize

function                                             old     new   delta
run_nofork_applet                                    258     280     +22
readlink_main                                        112     123     +11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 33/0)               Total: 33 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoconfig: FEDORA_COMPAT option (so far only tweaks uname)
Denys Vlasenko [Thu, 3 Aug 2017 01:46:14 +0000 (03:46 +0200)]
config: FEDORA_COMPAT option (so far only tweaks uname)

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agonew NOFORKs: clear, nproc, tty, uname, arch, unlink, which
Denys Vlasenko [Thu, 3 Aug 2017 01:29:32 +0000 (03:29 +0200)]
new NOFORKs: clear, nproc, tty, uname, arch, unlink, which

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agohush: do not accept "if() { echo; }" function def
Denys Vlasenko [Wed, 2 Aug 2017 17:44:05 +0000 (19:44 +0200)]
hush: do not accept "if() { echo; }" function def

function                                             old     new   delta
parse_stream                                        2634    2692     +58
msg_and_die_if_script                                  -      21     +21
syntax_error_unexpected_ch                            41      46      +5
syntax_error_at                                       14      18      +4
die_if_script                                         31      28      -3
setup_redirects                                      319     308     -11
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/2 up/down: 88/-14)             Total: 74 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoline editing: make read_line_input() not take timeout param
Denys Vlasenko [Wed, 2 Aug 2017 15:27:28 +0000 (17:27 +0200)]
line editing: make read_line_input() not take timeout param

It's almost always -1.

function                                             old     new   delta
read_line_input                                     3902    3912     +10
new_line_input_t                                      24      31      +7
pgetc                                                583     585      +2
save_command_ps_at_cur_history                        80      78      -2
read_line                                             76      74      -2
fgetc_interactive                                    246     244      -2
addLines                                              84      82      -2
doCommands                                          2226    2222      -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/5 up/down: 19/-12)              Total: 7 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agohush: make SIGINT handling visually less confusing
Denys Vlasenko [Wed, 2 Aug 2017 14:52:12 +0000 (16:52 +0200)]
hush: make SIGINT handling visually less confusing

$ echo $$
18448
$ echo $? <wait here, run "kill -INT 18448" in other shell><press enter>
   <=== NOTHING??
$

That empty line does not look right. After this patch:

$ echo $$
18448
$ echo $? <wait here, run "kill -INT 18448" in other shell><press enter>
^C
$

function                                             old     new   delta
fgetc_interactive                                    245     246      +1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoNOFORK fixes
Denys Vlasenko [Wed, 2 Aug 2017 14:37:39 +0000 (16:37 +0200)]
NOFORK fixes

"rm -i FILE" and "yes" can now be interrupted by ^C in hush.
This also now works:

$ usleep 19999999
^C
$ echo $?
130

function                                             old     new   delta
run_pipe                                            1668    1711     +43
pseudo_exec_argv                                     312     321      +9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 52/0)               Total: 52 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agodo not use `a' quoting style in comments
Denys Vlasenko [Wed, 2 Aug 2017 12:26:33 +0000 (14:26 +0200)]
do not use `a' quoting style in comments

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoconfig: do not use `a' quoting in help texts
Denys Vlasenko [Wed, 2 Aug 2017 12:12:48 +0000 (14:12 +0200)]
config: do not use `a' quoting in help texts

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agoash: align --login code with dash
Denys Vlasenko [Mon, 31 Jul 2017 17:43:47 +0000 (19:43 +0200)]
ash: align --login code with dash

Upstream commit:

    Date: Sun, 13 Jul 2008 22:34:50 +0800
    [OPTIONS] Added support for -l

    This patch adds support for the -l option (login shell) as required
    by the LSB.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
It's a bit bigger, but gets rid of one global variable

function                                             old     new   delta
options                                              554     576     +22

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agotest: fix 4-argument case
Denys Vlasenko [Mon, 31 Jul 2017 17:20:43 +0000 (19:20 +0200)]
test: fix 4-argument case

Upstream dash commit:

    Date: Sun, 13 Jul 2008 19:20:10 +0800
    Fixed 3,4-argument cases for test per POSIX

    ----- Forwarded message from Gerrit Pape <pape@smarden.org> -----

    Subject: Bug#455828: dash: 4-argument test "test \( ! -e \)" yields an error
    Date: Fri, 28 Dec 2007 08:53:29 +0000
    From: Gerrit Pape <pape@smarden.org>
    To: Vincent Lefevre <vincent@vinc17.org>, 455828@bugs.debian.org

    On Thu, Dec 27, 2007 at 06:23:20PM +0100, Vincent Lefevre wrote:
    > On 2007-12-27 16:00:06 +0000, Gerrit Pape wrote:
    > > On Wed, Dec 12, 2007 at 02:18:47AM +0100, Vincent Lefevre wrote:
    > > > According to POSIX[*], "test \( ! -e \)" is a 4-argument test and is
    > > > here equivalent to "test ! -e". But dash (like ksh93 and bash) yields
    > > > an error:
    > > >
    > > > $ test \( ! -e \) || echo $?
    > > > test: 1: closing paren expected
    > > > 2
    > > > $ test ! -e || echo $?
    > > > 1
    > >
    > > Hi Vincent,
    > >
    > > the -e switch to test takes an argument, a pathname.
    >
    > According to POSIX, in both above examples, "-e" is *not* a switch,
    > just a string.
    >
    >   test \( ! -e \)
    >
    > means: return true if the string "-e" is empty, otherwhise return false.
    > The error in dash is that it incorrectly thinks that "-e" is a switch in
    > this context.

    I see, you're right.  Thanks, Gerrit.

    ----- End forwarded message -----

    This patch hard-codes the 3,4-argument cases in the way required by
    POSIX.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
function                                             old     new   delta
test_main                                            370     421     +51

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
7 years agohush: remove redundant "G_flag_return_in_progress = -1"
Denys Vlasenko [Mon, 31 Jul 2017 16:06:07 +0000 (18:06 +0200)]
hush: remove redundant "G_flag_return_in_progress = -1"

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>