diff options
author | Denys Vlasenko | 2021-02-18 23:30:24 +0100 |
---|---|---|
committer | Denys Vlasenko | 2021-02-18 23:30:24 +0100 |
commit | 6bdfbc4cb5470f63d4905e89f89a9829af354316 (patch) | |
tree | 573f2b655d4944d4e5e9e7627f18c8a4bb1ebeaa /shell/hush_test/hush-misc/builtin1.right | |
parent | 33745b1fc8cc6d41f4e708d67800d296668af2ce (diff) | |
download | busybox-6bdfbc4cb5470f63d4905e89f89a9829af354316.zip busybox-6bdfbc4cb5470f63d4905e89f89a9829af354316.tar.gz |
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>
Diffstat (limited to 'shell/hush_test/hush-misc/builtin1.right')
0 files changed, 0 insertions, 0 deletions