diff options
author | ps <ps@FreeBSD.org> | 2000-08-23 21:41:25 +0000 |
---|---|---|
committer | ps <ps@FreeBSD.org> | 2000-08-23 21:41:25 +0000 |
commit | 99533f6c61e9d8adefa5eb5144179e63328e0ef8 (patch) | |
tree | 012a94b06a8064a72e5e759b640ad9650532a3c5 /sys/kern/kern_proc.c | |
parent | 079703721bb552520bac11859fca966738a9a755 (diff) | |
download | FreeBSD-src-99533f6c61e9d8adefa5eb5144179e63328e0ef8.zip FreeBSD-src-99533f6c61e9d8adefa5eb5144179e63328e0ef8.tar.gz |
Add a sysctl which hides all process except those that belong to
the user asking for the process list.
Reviewed by: peter
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r-- | sys/kern/kern_proc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 338657e..9fd0f45 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -55,6 +55,10 @@ MALLOC_DEFINE(M_SESSION, "session", "session header"); static MALLOC_DEFINE(M_PROC, "proc", "Proc structures"); MALLOC_DEFINE(M_SUBPROC, "subproc", "Proc sub-structures"); +static int ps_showallprocs = 1; +SYSCTL_INT(_kern, OID_AUTO, ps_showallprocs, CTLFLAG_RW, + &ps_showallprocs, 0, ""); + static void pgdelete __P((struct pgrp *)); /* @@ -599,6 +603,11 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS) p = LIST_FIRST(&zombproc); for (; p != 0; p = LIST_NEXT(p, p_list)) { /* + * Show a user only their processes. + */ + if ((!ps_showallprocs) && p_trespass(curproc, p)) + continue; + /* * Skip embryonic processes. */ if (p->p_stat == SIDL) |