diff --git a/pgrep.c b/pgrep.c index 9a61e6d5..539a2d84 100644 --- a/pgrep.c +++ b/pgrep.c @@ -661,8 +661,6 @@ static int signal_option(int *argc, char **argv) for (i = 1; i < *argc; i++) { if (argv[i][0] == '-') { sig = signal_name_to_number(argv[i] + 1); - if (sig == -1 && isdigit(argv[i][1])) - sig = atoi(argv[i] + 1); if (-1 < sig) { memmove(argv + i, argv + i + 1, sizeof(char *) * (*argc - i)); diff --git a/skill.c b/skill.c index 9a19a8bb..f8f4e499 100644 --- a/skill.c +++ b/skill.c @@ -398,17 +398,15 @@ static void __attribute__ ((__noreturn__)) skillsnice_usage(FILE * out) static int skill_sig_option(int *argc, char **argv) { - int i, nargs = *argc; + int i; int signo = -1; - for (i = 1; i < nargs; i++) { + for (i = 1; i < *argc; i++) { if (argv[i][0] == '-') { signo = signal_name_to_number(argv[i] + 1); if (-1 < signo) { - if (nargs - i) { - nargs--; - memmove(argv + i, argv + i + 1, - sizeof(char *) * (nargs - i)); - } + memmove(argv + i, argv + i + 1, + sizeof(char *) * (*argc - i)); + (*argc)--; return signo; } } @@ -421,7 +419,6 @@ static void __attribute__ ((__noreturn__)) kill_main(int argc, char **argv) { int signo, i; - int sigopt = 0; int loop = 1; long pid; int exitvalue = EXIT_SUCCESS; @@ -446,8 +443,6 @@ static void __attribute__ ((__noreturn__)) signo = skill_sig_option(&argc, argv); if (signo < 0) signo = SIGTERM; - else - sigopt++; opterr=0; /* suppress errors on -123 */ while (loop == 1 && (i = getopt_long(argc, argv, "l::Ls:hV", longopts, NULL)) != -1) @@ -495,9 +490,12 @@ static void __attribute__ ((__noreturn__)) kill_usage(stderr); } - argc -= optind + sigopt; + argc -= optind; argv += optind; + if (argc < 1) + kill_usage(stderr); + for (i = 0; i < argc; i++) { pid = strtol_or_err(argv[i], _("failed to parse argument")); if (!kill((pid_t) pid, signo)) @@ -588,10 +586,8 @@ static void skillsnice_parse(int argc, prino = snice_prio_option(&argc, argv); else if (program == PROG_SKILL) { signo = skill_sig_option(&argc, argv); - if (-1 < signo) { + if (-1 < signo) sig_or_pri = signo; - argc -= 1; - } } pid_count = 0;