Date: Wed, 10 Jun 2026 02:37:44 +0000 From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 89fa97f0a71d - main - compat32 wait4/6(2): only copy out when there is a pid to report Message-ID: <6a28cdf8.1e406.43d933b4@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=89fa97f0a71d4988891766c4e69eeb9687016b14 commit 89fa97f0a71d4988891766c4e69eeb9687016b14 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2026-06-09 21:33:56 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2026-06-10 02:37:25 +0000 compat32 wait4/6(2): only copy out when there is a pid to report PR: 295965 Reported and tested by: mandree Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D57513 --- sys/compat/freebsd32/freebsd32_misc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index a0b6118900ed..e4a4f256feb4 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -234,11 +234,9 @@ freebsd32_wait4(struct thread *td, struct freebsd32_wait4_args *uap) else rup = NULL; error = kern_wait(td, uap->pid, &status, uap->options, rup); - if (error) - return (error); - if (uap->status != NULL) + if (uap->status != NULL && error == 0 && td->td_retval[0] != 0) error = copyout(&status, uap->status, sizeof(status)); - if (uap->rusage != NULL && error == 0) { + if (uap->rusage != NULL && error == 0 && td->td_retval[0] != 0) { freebsd32_rusage_out(&ru, &ru32); error = copyout(&ru32, uap->rusage, sizeof(ru32)); } @@ -265,11 +263,9 @@ freebsd32_wait6(struct thread *td, struct freebsd32_wait6_args *uap) sip = NULL; error = kern_wait6(td, uap->idtype, PAIR32TO64(id_t, uap->id), &status, uap->options, wrup, sip); - if (error != 0) - return (error); - if (uap->status != NULL) + if (uap->status != NULL && error == 0 && td->td_retval[0] != 0) error = copyout(&status, uap->status, sizeof(status)); - if (uap->wrusage != NULL && error == 0) { + if (uap->wrusage != NULL && error == 0 && td->td_retval[0] != 0) { freebsd32_rusage_out(&wru.wru_self, &wru32.wru_self); freebsd32_rusage_out(&wru.wru_children, &wru32.wru_children); error = copyout(&wru32, uap->wrusage, sizeof(wru32));home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a28cdf8.1e406.43d933b4>
