git: d6bbb597049c - releng/15.1 - ptrace: clear TDP_USERWR after transparent attach only on attach
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 21 May 2026 21:21:49 UTC
The branch releng/15.1 has been updated by cperciva:
URL: https://cgit.FreeBSD.org/src/commit/?id=d6bbb597049cafced800585b72a155473b93331c
commit d6bbb597049cafced800585b72a155473b93331c
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-05-11 01:12:30 +0000
Commit: Colin Percival <cperciva@FreeBSD.org>
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;
}
/*