Without option --pid, always at least two arguments are needed: the <priority> value and a <command>. (The 'need_prio' variable is relevant only for the --pid case.) Also, make the error message more informative, and do not annoyingly suggest that the user try `chrt --help`. CC: Madadi Vineeth Reddy <vineethr@xxxxxxxxxxxxx> Signed-off-by: Benno Schulenberg <bensberg@xxxxxxxxxx> --- schedutils/chrt.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/schedutils/chrt.c b/schedutils/chrt.c index 8ed4d69f3..f5ecae6e1 100644 --- a/schedutils/chrt.c +++ b/schedutils/chrt.c @@ -507,11 +507,8 @@ int main(int argc, char **argv) } } - if (((ctl->pid > -1) && argc - optind < (need_prio ? 1 : 0)) || - ((ctl->pid == -1) && argc - optind < (need_prio ? 2 : 1))) { - warnx(_("bad usage")); - errtryhelp(EXIT_FAILURE); - } + if (argc - optind < (ctl->pid > -1 ? 1 : 2)) + errx(EXIT_FAILURE, _("too few arguments")); /* pid exists but priority not given */ if (ctl->pid > -1 && argc - optind == 1) { @@ -530,11 +527,10 @@ int main(int argc, char **argv) if (ctl->verbose) show_sched_info(ctl); - errno = 0; - - if (need_prio || argc - optind > 1) + if (argc - optind > 1) { + errno = 0; ctl->priority = strtos32_or_err(argv[optind], _("invalid priority argument")); - else + } else ctl->priority = 0; if (ctl->runtime && !supports_runtime_param(ctl->policy)) -- Dobjátok a Dunába a kis diktátort. 2.48.1