Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Jul 2026 19:48:07 +0000
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 1932bd20ed53 - main - ptrace: Propagate errors from set_fpregs()
Message-ID:  <6a6cfbf7.23ee8.3f28aef8@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=1932bd20ed53f2e695a576cffd183937ed25de3f

commit 1932bd20ed53f2e695a576cffd183937ed25de3f
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-07-31 19:47:20 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-07-31 19:47:20 +0000

    ptrace: Propagate errors from set_fpregs()
    
    Otherwise ptrace(PT_SETREGSET) will not return errors to userspace.
    
    Fixes:          cef05c5a62ba ("amd64: do not allow to set reserved bits in MXCSR for ptrace(PT_SETFPREGS)")
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D58577
---
 sys/kern/imgact_elf.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c
index 08e9718c4d24..b8a0e439de5c 100644
--- a/sys/kern/imgact_elf.c
+++ b/sys/kern/imgact_elf.c
@@ -2388,14 +2388,14 @@ __elfN(set_fpregset)(struct regset *rs, struct thread *td, void *buf,
 {
 	elf_prfpregset_t *fpregset;
 
-	fpregset = buf;
 	KASSERT(size == sizeof(*fpregset), ("%s: invalid size", __func__));
+
+	fpregset = buf;
 #if defined(COMPAT_FREEBSD32) && __ELF_WORD_SIZE == 32
-	set_fpregs32(td, fpregset);
+	return (set_fpregs32(td, fpregset) == 0);
 #else
-	set_fpregs(td, fpregset);
+	return (set_fpregs(td, fpregset) == 0);
 #endif
-	return (true);
 }
 
 static struct regset __elfN(regset_fpregset) = {


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a6cfbf7.23ee8.3f28aef8>