From nobody Thu Jun 5 00:35:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bCQTQ3j4hz5xth7; Thu, 05 Jun 2025 00:35:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bCQTP6wYKz4PSs; Thu, 05 Jun 2025 00:35:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749083722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vSV1NwMb6ywxgG5eJLnZvCRHRYGdlAsd8aFQl+Kie/s=; b=JCXIB83SJ8H0ntC0CnDIOR+58s67orCFCq2nW5MVmkGfXZ/f0ETh6DGCd+8EsNNR2knScJ hFeX4xpYcTbRY05Ieqvp+R5pZ++A2cNVglsGxJMN8KjShaamTGdeNU06t7GwBFWxBmgrtN mLHtAuJoo+c1+S2xf7t8Ch5eIGIL7QC2I/kQ9QpS8O6BCAQjCQr7m+GNgjUxlF2J7dSvSL Y2UqiO/PGqf0sQnKKfo5Ojid0Eg11perSNwHSPYULemDSFDH0sSH82hFo6jY0bTVinRAbE /H9a+4xod+WCoDzQVAtqGTgcyJMsXVRJAwDlmqR3bxn01CS041nitmFWETfo+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749083722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vSV1NwMb6ywxgG5eJLnZvCRHRYGdlAsd8aFQl+Kie/s=; b=rzLZ8pFXw2oy3mrNcBCj+ajEFSwcny43ebIN9umUPn17k/22VhBeNU69vFRQ69rjUi62l7 11Eqn6f/OSKWUI8dhfJ+VZ1S1iQiqOrNqw8p5JlAVRWX8JRjH39CkVr2hGHrZx0GYgdcxa J62Q9l1o2Qhdw6p7kRQzu63WKTEPTsKhtiIoTpByESIU2LTSUu3/Mcbzs8C/GVXz6wz+4V qHlNp83p1zNvCj1zwoYX7/G5s3ITZiu9myJfNvxKZBYdO9JOIwEr21/53mPLBigRuKVaQf ssqK1iUIHPMDfQmIs26Zi1wlv3DkcyaMFQ/tuV2xpEnXCQQ35zca0pTsZs0IHA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749083722; a=rsa-sha256; cv=none; b=p46SQADAA6XFnSRcwDqRIaEa12tEykR0+RsIvS7c7ZI1tGrsI4/jebOAwpem7Wfe8QIQW4 SRste5edzTeKOlZnCx3TvaGC0XvOwAbRjJcjt6FBVy8+N2Dck14wREB5HIGsi8q2Tn77n0 1TPRbgs+cPlbIKVvRTpeOD+FuUWSxqIhMmBj1VvydD65WC8i1GbV1wP7BjvtnI0cVyPVTr 2bcTQnURD7tsJ+X3MMfdtuqZcW9NWfhb1kCfw25jteJM+DJ2Ejr2GIc/bVSEe0UHyEvNzt 6cCOs1mFPp7gEDLRXMimZ8n5sqxP8AGjm7B2l+iOE2FyCFoRyeabkHm/Tco23Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bCQTP6R7hznQj; Thu, 05 Jun 2025 00:35:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5550ZLsK081632; Thu, 5 Jun 2025 00:35:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5550ZL2O081629; Thu, 5 Jun 2025 00:35:21 GMT (envelope-from git) Date: Thu, 5 Jun 2025 00:35:21 GMT Message-Id: <202506050035.5550ZL2O081629@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 730405499ecb - stable/14 - PT_CONTINUE: undo transparent attach consequences List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 730405499ecb63f84b0f0aa9a866dbfd1250e75b Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=730405499ecb63f84b0f0aa9a866dbfd1250e75b commit 730405499ecb63f84b0f0aa9a866dbfd1250e75b Author: Konstantin Belousov AuthorDate: 2025-05-27 21:09:18 +0000 Commit: Konstantin Belousov CommitDate: 2025-06-05 00:35:03 +0000 PT_CONTINUE: undo transparent attach consequences PR: 287050 (cherry picked from commit 99976934274de6fa19f049a0b6eac10856710f96) --- sys/kern/sys_process.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 5f647961d676..4d1d0ef21a15 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -1352,6 +1353,27 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) if (data == SIGKILL) proc_wkilled(p); + /* + * If the PT_CONTINUE-like operation is attempted on + * the thread on sleepq, this is possible only after + * the transparent PT_ATTACH. In this case, if the + * caller modified the thread state, e.g. by writing + * 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); + } + } + td2->td_dbgflags &= ~TDB_USERWR; + } + /* * Unsuspend all threads. To leave a thread * suspended, use PT_SUSPEND to suspend it before