From 9610c897509b09d40c61c0bf7c054d4474fa6cdf Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Tue, 8 Mar 2016 00:46:03 +0000 Subject: [PATCH] Fix a couple of silly mistakes in r291962. - Handle the case where no DOF helper is provided. This occurs with the currently-unused DTRACEHIOC_ADD ioctl. - Fix some checks that prevented the loading DOF in the (non-default) lazyload mode. --- sys/cddl/dev/dtrace/dtrace_ioctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cddl/dev/dtrace/dtrace_ioctl.c b/sys/cddl/dev/dtrace/dtrace_ioctl.c index 666c0774592d..6e2b558ca88a 100644 --- a/sys/cddl/dev/dtrace/dtrace_ioctl.c +++ b/sys/cddl/dev/dtrace/dtrace_ioctl.c @@ -47,14 +47,14 @@ dtrace_ioctl_helper(struct cdev *dev, u_long cmd, caddr_t addr, int flags, /* FALLTHROUGH */ case DTRACEHIOC_ADD: p = curproc; - if (p->p_pid == dhp->dofhp_pid) { + if (dhp == NULL || p->p_pid == dhp->dofhp_pid) { dof = dtrace_dof_copyin((uintptr_t)addr, &rval); } else { p = pfind(dhp->dofhp_pid); if (p == NULL) return (EINVAL); if (!P_SHOULDSTOP(p) || - (p->p_flag & P_TRACED|P_WEXIT) == 0 || + (p->p_flag & (P_TRACED | P_WEXIT)) != P_TRACED || p->p_pptr != curproc) { PROC_UNLOCK(p); return (EINVAL);