Index: sys_ptrace_common.c =================================================================== RCS file: /cvsroot/src/sys/kern/sys_ptrace_common.c,v retrieving revision 1.57 diff -u -r1.57 sys_ptrace_common.c --- sys_ptrace_common.c 29 Jun 2019 11:37:17 -0000 1.57 +++ sys_ptrace_common.c 18 Jul 2019 15:47:17 -0000 @@ -552,9 +552,9 @@ if (lid == 0 || lid == (*lt)->l_lid || t->p_nlwps == 1) return 0; - lwp_delref(*lt); - mutex_enter(t->p_lock); + lwp_delref2(*lt); + *lt = lwp_find(t, lid); if (*lt == NULL) { mutex_exit(t->p_lock); @@ -562,6 +562,7 @@ } if ((*lt)->l_flag & LW_SYSTEM) { + mutex_exit(t->p_lock) *lt = NULL; return EINVAL; } @@ -601,9 +602,6 @@ if (psi.psi_siginfo.si_signo < 0 || psi.psi_siginfo.si_signo >= NSIG) return EINVAL; - if ((error = ptrace_update_lwp(t, lt, psi.psi_lwpid)) != 0) - return error; - t->p_sigctx.ps_faked = true; t->p_sigctx.ps_info = psi.psi_siginfo._info; t->p_sigctx.ps_lwp = psi.psi_lwpid;