X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/blobdiff_plain/e54743b1803e9173c766eb9d90eb9ff932a2c3fa..a4a639859f6bc14f9f55142b4bd2289b2a56d7f2:/sys/kern/kern_ktrace.c diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c index 4ba27e6337..f26cf46f56 100644 --- a/sys/kern/kern_ktrace.c +++ b/sys/kern/kern_ktrace.c @@ -338,18 +338,20 @@ ktrace_clear_callback(struct proc *p, void *data) { struct ktrace_clear_info *info = data; - if (info->rootclear) { - if (p->p_tracenode == info->tracenode) { - ktrdestroy(&p->p_tracenode); - p->p_traceflag = 0; - } - } else { - if (p->p_tracenode->kn_vp == info->tracenode->kn_vp) { - if (ktrcanset(curproc, p)) { + if (p->p_tracenode) { + if (info->rootclear) { + if (p->p_tracenode == info->tracenode) { ktrdestroy(&p->p_tracenode); p->p_traceflag = 0; - } else { - info->error = EPERM; + } + } else { + if (p->p_tracenode->kn_vp == info->tracenode->kn_vp) { + if (ktrcanset(curproc, p)) { + ktrdestroy(&p->p_tracenode); + p->p_traceflag = 0; + } else { + info->error = EPERM; + } } } }