Bug-Debian: http://bugs.debian.org/688731
kill would not permit negative PIDs and thought they were options. kill
now explicitly checks for unknown options and if they are numeric
assumes they are negative PIDs. The first negative PID stops any
further option processing.
Signed-off-by: Craig Small <csmall@enc.com.au>
{
int signo, i;
int sigopt = 0;
+ int loop = 1;
long pid;
int exitvalue = EXIT_SUCCESS;
else
sigopt++;
- while ((i = getopt_long(argc, argv, "l::Ls:hV", longopts, NULL)) != -1)
+ opterr=0; /* suppress errors on -123 */
+ while (loop == 1 && (i = getopt_long(argc, argv, "l::Ls:hV", longopts, NULL)) != -1)
switch (i) {
case 'l':
if (optarg) {
case 'V':
display_kill_version();
exit(EXIT_SUCCESS);
+ case '?':
+ if (!isdigit(optopt)) {
+ xwarnx(_("invalid argument %c"), optopt);
+ kill_usage(stderr);
+ }
+ loop=0;
+ break;
default:
kill_usage(stderr);
}