summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/filemon/filemon.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/filemon/filemon.c b/sys/dev/filemon/filemon.c
index f05710b..c82a816 100644
--- a/sys/dev/filemon/filemon.c
+++ b/sys/dev/filemon/filemon.c
@@ -150,6 +150,7 @@ filemon_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag __unused,
{
int error = 0;
struct filemon *filemon;
+ struct proc *p;
devfs_get_cdevpriv((void **) &filemon);
@@ -163,7 +164,13 @@ filemon_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag __unused,
/* Set the monitored process ID. */
case FILEMON_SET_PID:
- filemon->pid = *((pid_t *)data);
+ p = pfind(*((pid_t *)data));
+ if (p == NULL)
+ return (EINVAL);
+ error = p_candebug(curthread, p);
+ if (error == 0)
+ filemon->pid = p->p_pid;
+ PROC_UNLOCK(p);
break;
default:
OpenPOWER on IntegriCloud