The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=d6bbb597049cafced800585b72a155473b93331c
commit d6bbb597049cafced800585b72a155473b93331c Author: Konstantin Belousov <[email protected]> AuthorDate: 2026-05-11 01:12:30 +0000 Commit: Colin Percival <[email protected]> CommitDate: 2026-05-21 21:20:30 +0000 ptrace: clear TDP_USERWR after transparent attach only on attach Approved by: re (cperciva) (cherry picked from commit cb31a266167c8bde3488fbdd6bf24c38b6f59977) (cherry picked from commit bce6e0e903288aa128bdd8ec45005d1416c4c764) --- sys/kern/sys_process.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index c67996ad7df1..7225a63328b4 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -1377,17 +1377,16 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) * register file or specifying the pc, make the thread * xstopped by waking it up. */ - if ((td2->td_dbgflags & TDB_USERWR) != 0) { - if (pt_attach_transparent) { - thread_lock(td2); - if (TD_ON_SLEEPQ(td2) && - (td2->td_flags & TDF_SINTR) != 0) { - sleepq_abort(td2, EINTR); - } else { - thread_unlock(td2); - } + if ((td2->td_dbgflags & TDB_USERWR) != 0 && + pt_attach_transparent) { + thread_lock(td2); + if (TD_ON_SLEEPQ(td2) && + (td2->td_flags & TDF_SINTR) != 0) { + td2->td_dbgflags &= ~TDB_USERWR; + sleepq_abort(td2, EINTR); + } else { + thread_unlock(td2); } - td2->td_dbgflags &= ~TDB_USERWR; } /*
