summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2014-11-13 16:40:15 +0000
committersmh <smh@FreeBSD.org>2014-11-13 16:40:15 +0000
commitf6482d9897690c9ed33161384a3fcce5a2035282 (patch)
treefd8095d0137fe38137231fd8c0e240e8365f1256 /usr.bin
parent8b16f1c857591e35897289e16425308ecb42e325 (diff)
downloadFreeBSD-src-f6482d9897690c9ed33161384a3fcce5a2035282.zip
FreeBSD-src-f6482d9897690c9ed33161384a3fcce5a2035282.tar.gz
MFC r260800:
Fix a regression introduced in r237618 MFC r260801: Re-work r260800 to include other signals which start with 'I' such as ILL, INFO etc. Sponsored by: Multiplay
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/killall/killall.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/usr.bin/killall/killall.c b/usr.bin/killall/killall.c
index dd22a83..b171630 100644
--- a/usr.bin/killall/killall.c
+++ b/usr.bin/killall/killall.c
@@ -90,6 +90,7 @@ nosig(char *name)
int
main(int ac, char **av)
{
+ char **saved_av;
struct kinfo_proc *procs, *newprocs;
struct stat sb;
struct passwd *pw;
@@ -144,9 +145,6 @@ main(int ac, char **av)
if (**av == '-') {
++*av;
switch (**av) {
- case 'I':
- Iflag = 1;
- break;
case 'j':
++*av;
if (**av == '\0') {
@@ -214,6 +212,7 @@ main(int ac, char **av)
zflag++;
break;
default:
+ saved_av = av;
if (isalpha((unsigned char)**av)) {
if (strncasecmp(*av, "SIG", 3) == 0)
*av += 3;
@@ -223,8 +222,14 @@ main(int ac, char **av)
sig = p - sys_signame;
break;
}
- if (!sig)
- nosig(*av);
+ if (!sig) {
+ if (**saved_av == 'I') {
+ av = saved_av;
+ Iflag = 1;
+ break;
+ } else
+ nosig(*av);
+ }
} else if (isdigit((unsigned char)**av)) {
sig = strtol(*av, &ep, 10);
if (!*av || *ep)
OpenPOWER on IntegriCloud