diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c --- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c +++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c @@ -336,8 +336,9 @@ */ addr = 0; error = vm_map_find(&p->p_vmspace->vm_map, NULL, 0, &addr, - FASTTRAP_SCRBLOCK_SIZE, 0, VMFS_ANY_SPACE, VM_PROT_ALL, - VM_PROT_ALL, 0); + FASTTRAP_SCRBLOCK_SIZE, 0, VMFS_ANY_SPACE, + VM_PROT_READ | VM_PROT_EXECUTE, + VM_PROT_READ | VM_PROT_EXECUTE, MAP_COPY_ON_WRITE); if (error != KERN_SUCCESS) goto done; diff --git a/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c b/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c --- a/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c +++ b/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c @@ -1666,7 +1666,7 @@ ASSERT(i <= sizeof (scratch)); - if (fasttrap_copyout(scratch, (char *)addr, i)) { + if (uwrite(curproc, scratch, i, addr) != 0) { fasttrap_sigtrap(p, curthread, pc); new_pc = pc; break;