summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2004-01-22 20:56:06 +0000
committercperciva <cperciva@FreeBSD.org>2004-01-22 20:56:06 +0000
commit92bbd9c60a7606aa605c857452e675c01cd6f75c (patch)
tree47138ccc1f23c388e74cd6e478c864a44ed590d0
parent53515fc18934ddcf53c48ba6b08c725b9382d221 (diff)
downloadFreeBSD-src-92bbd9c60a7606aa605c857452e675c01cd6f75c.zip
FreeBSD-src-92bbd9c60a7606aa605c857452e675c01cd6f75c.tar.gz
Serial murderers shouldn't commit suicide. (killall should
avoid killing itself.) PR: bin/46107 Submitted by: stacey <stacey_@starwhack.net>
-rw-r--r--usr.bin/killall/killall.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.bin/killall/killall.c b/usr.bin/killall/killall.c
index 3628da8..6d15969 100644
--- a/usr.bin/killall/killall.c
+++ b/usr.bin/killall/killall.c
@@ -118,6 +118,7 @@ main(int ac, char **av)
int zflag = 0;
uid_t uid = 0;
dev_t tdev = 0;
+ pid_t mypid;
char thiscmd[MAXCOMLEN + 1];
pid_t thispid;
uid_t thisuid;
@@ -303,6 +304,7 @@ main(int ac, char **av)
nprocs = size / sizeof(struct kinfo_proc);
if (dflag)
printf("nprocs %d\n", nprocs);
+ mypid = getpid();
for (i = 0; i < nprocs; i++) {
if ((procs[i].ki_stat & SZOMB) == SZOMB && !zflag)
@@ -313,6 +315,8 @@ main(int ac, char **av)
thistdev = procs[i].ki_tdev;
thisuid = procs[i].ki_ruid; /* real uid */
+ if (thispid == mypid)
+ continue;
matched = 1;
if (user) {
if (thisuid != uid)
OpenPOWER on IntegriCloud