busybox/include
Denys Vlasenko 6bdfbc4cb5 libbb: fix '--help' handling in FEATURE_SH_NOFORK=y
Most BusyBox applets respond to the '--help' option by printing
a usage message.  This is normally handled by busybox_main() so
applet main routines don't have support for '--help'.

In standalone shell mode with FEATURE_SH_NOFORK enabled nofork
applets are invoked directly, bypassing busybox_main().  This
results in inconsistent handling of '--help':

- applets which call getopt() report "unrecognized option '--help'"
  and print help anyway;

- realpath says "--help: No such file or directory" and doesn't
  print help;

- usleep says "invalid number '--help'" and doesn't print help.

Avoid inconsistency by checking for '--help' in run_nofork_applet().

Bug found by Ron Yorston.

function                                             old     new   delta
show_usage_if_dash_dash_help                           -      70     +70
run_nofork_applet                                    347     362     +15
run_applet_no_and_exit                               432     365     -67
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 85/-67)             Total: 18 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-02-18 23:30:24 +01:00
..
.gitignore ash: allow shell scripts to be embedded in the binary 2018-11-01 10:15:13 +01:00
applet_metadata.h applet_tables: do not include libbb.h, that header ir for target builds 2011-03-28 01:23:38 +02:00
applets.h.sh modprobe-small: make applets individually selectable 2016-12-23 15:13:16 +01:00
applets.src.h Tweaks to build process for embedded scripts 2018-11-27 10:38:10 +01:00
ar_.h archival: avoid std namespace for local includes 2020-11-16 13:24:24 +01:00
bb_archive.h libarchive: treat one "FIXME: avoid seek" 2019-05-24 17:03:28 +02:00
bb_e2fs_defs.h Whitespace fixes 2013-07-30 11:52:58 +02:00
busybox.h config: disentangle PREFER_APPLETS from SH_STANDALONE and SH_NOFORK 2016-07-22 18:48:38 +02:00
dump.h od: unbreak it 2020-10-25 23:44:22 +01:00
fix_u32.h *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
grp_.h libpwdgrp: use FAST_FUNC to make "matching ABI" optimization more likely to succeed 2015-01-02 22:31:07 +01:00
inet_common.h
libbb.h libbb: fix '--help' handling in FEATURE_SH_NOFORK=y 2021-02-18 23:30:24 +01:00
liblzo_interface.h lzop: code shrink 2018-02-01 01:41:31 +01:00
platform.h ash: placate -Werror=format-security 2021-02-18 13:45:49 +01:00
pwd_.h libpwdgrp: use getpwent() instead of getpwent_r() 2015-02-07 21:21:02 +01:00
rtc_.h move ADJTIME_PATH define to header files 2020-12-17 20:53:43 +01:00
shadow_.h libpwdgrp: use FAST_FUNC to make "matching ABI" optimization more likely to succeed 2015-01-02 22:31:07 +01:00
unicode.h ash,hush: recheck LANG before every line input 2011-03-23 17:59:27 +01:00
usage.src.h move ADJTIME_PATH define to header files 2020-12-17 20:53:43 +01:00
volume_id.h blkid: if parameters are given, do not scan /dev 2012-03-03 15:09:07 +01:00
xatonum.h udhcp: finish support of classless static routes 2011-12-16 17:05:52 +01:00
xregex.h *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00