top: ensure an EXIT_FAILURE with bad command line args
When getopt usage was added (plus long options) in the
patch shown below, top no longer returned EXIT_FAILURE
when the error message was generated by getopt itself.
This commit will restore the proper behavior no matter
who might issue a command line argument error message.
Thanks to Bastian Bittorf for discovering this buglet.
Reference(s):
https://gitlab.com/procps-ng/procps/-/issues/273
. sep, 2021 - getopt with long form args
commit c91b371485
Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
parent
cced1e49ef
commit
cbbe8fe324
@ -556,7 +556,7 @@ static void bye_bye (const char *str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* we'll only have a 'str' if called by error_exit() |
|
/* we'll only have a 'str' if called by error_exit() |
|
||||||
not ever from the sig_endpgm() signal handler ... | */
|
and parse_args(), never from a signal handler ... | */
|
||||||
if (str) {
|
if (str) {
|
||||||
fputs(str, stderr);
|
fputs(str, stderr);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
@ -4372,8 +4372,9 @@ static void parse_args (int argc, char **argv) {
|
|||||||
Width_mode = (int)tmp;
|
Width_mode = (int)tmp;
|
||||||
continue;
|
continue;
|
||||||
default:
|
default:
|
||||||
// we'll rely on getopt for any error message ...
|
/* we'll rely on getopt for any error message while
|
||||||
bye_bye(NULL);
|
forcing an EXIT_FAILURE with an empty string ... */
|
||||||
|
bye_bye("");
|
||||||
} // end: switch (ch)
|
} // end: switch (ch)
|
||||||
#ifndef GETOPTFIX_NO
|
#ifndef GETOPTFIX_NO
|
||||||
if (cp) error_exit(fmtmk(N_fmt(UNKNOWN_opts_fmt), cp));
|
if (cp) error_exit(fmtmk(N_fmt(UNKNOWN_opts_fmt), cp));
|
||||||
|
Loading…
Reference in New Issue
Block a user