suicide prevention patch for killall(1)
Chris Pressey
cpressey at catseye.mine.nu
Fri Jan 23 10:09:37 PST 2004
Hm, OK, I have to ponder the mount thing a little.
In the meantime, here is a patch to killall that stops it from
committing suicide. Backported from FreeBSD:
http://www.freebsd.org/cgi/query-pr.cgi?pr=46107
Not well tested (I *really* need an adequately-size harddrive for
playing around with DragonFly on!) but it looks pretty straightforward.
-Chris
--- killall.c.orig Fri Jan 23 09:36:13 2004
+++ killall.c Fri Jan 23 09:35:36 2004
@@ -116,6 +116,7 @@
int mflag = 0;
uid_t uid = 0;
dev_t tdev = 0;
+ pid_t mypid;
char thiscmd[MAXCOMLEN + 1];
pid_t thispid;
uid_t thisuid;
@@ -285,6 +286,7 @@
nprocs = size / sizeof(struct kinfo_proc);
if (dflag)
printf("nprocs %d\n", nprocs);
+ mypid = getpid();
for (i = 0; i < nprocs; i++) {
thispid = procs[i].kp_proc.p_pid;
@@ -293,6 +295,8 @@
thistdev = procs[i].kp_eproc.e_tdev;
thisuid = procs[i].kp_eproc.e_ucred.cr_ruid; /* real uid */
+ if (thispid == mypid)
+ continue;
matched = 1;
if ((int)procs[i].kp_proc.p_pid < 0)
matched = 0;
More information about the Submit
mailing list