aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2026-02-05 20:02:27 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2026-02-09 18:57:19 +0000
commit154778e3585166f613fd3d2978a0cab2262d1611 (patch)
treef7ce544f14a40f383fa9f34ac8b023e508c48c88
parentbeee89472e3e0e3640c9db5c34a6e422830ff00f (diff)
sys/compat/freebsd32: ki_pd is missing from struct kinfo_proc32
This is missed by the sizeof(struct kinfo_proc32) assert due to another bug: namely, the use of uint64_t type that has different alignment on i386 than on amd64 host. Fixes: 85078b8573332c2c83a79adea8a61b519fb3b6af Reviewed by: brooks Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D55135
-rw-r--r--sys/compat/freebsd32/freebsd32.h1
-rw-r--r--sys/kern/kern_proc.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h
index 5c7764b75335..c10a8248aabb 100644
--- a/sys/compat/freebsd32/freebsd32.h
+++ b/sys/compat/freebsd32/freebsd32.h
@@ -413,6 +413,7 @@ struct kinfo_proc32 {
uint32_t ki_kstack;
uint32_t ki_udata;
uint32_t ki_tdaddr;
+ uint32_t ki_pd;
uint32_t ki_uerrmsg;
uint32_t ki_spareptrs[KI_NSPARE_PTR]; /* spare room for growth */
int ki_sparelongs[KI_NSPARE_LONG];
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 05b1ed990025..ec06af21c7c3 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1503,6 +1503,7 @@ freebsd32_kinfo_proc_out(const struct kinfo_proc *ki, struct kinfo_proc32 *ki32)
PTRTRIM_CP(*ki, *ki32, ki_kstack);
PTRTRIM_CP(*ki, *ki32, ki_udata);
PTRTRIM_CP(*ki, *ki32, ki_tdaddr);
+ PTRTRIM_CP(*ki, *ki32, ki_pd);
CP(*ki, *ki32, ki_sflag);
CP(*ki, *ki32, ki_tdflags);
PTRTRIM_CP(*ki, *ki32, ki_uerrmsg);