diff options
author | cperciva <cperciva@FreeBSD.org> | 2004-01-22 20:56:06 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2004-01-22 20:56:06 +0000 |
commit | 92bbd9c60a7606aa605c857452e675c01cd6f75c (patch) | |
tree | 47138ccc1f23c388e74cd6e478c864a44ed590d0 | |
parent | 53515fc18934ddcf53c48ba6b08c725b9382d221 (diff) | |
download | FreeBSD-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.c | 4 |
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) |