Module Name:    src
Committed By:   martin
Date:           Wed Jun 21 21:04:03 UTC 2023

Modified Files:
        src/sys/compat/common [netbsd-8]: kern_info_09.c kern_info_43.c
            kern_resource_43.c kern_sig_13.c kern_sig_43.c kern_time_50.c
            vfs_syscalls_12.c vfs_syscalls_30.c vfs_syscalls_43.c
        src/sys/compat/freebsd [netbsd-8]: freebsd_misc.c freebsd_sched.c
        src/sys/compat/linux/arch/alpha [netbsd-8]: linux_machdep.c
        src/sys/compat/linux/arch/amd64 [netbsd-8]: linux_machdep.c
        src/sys/compat/linux/arch/arm [netbsd-8]: linux_machdep.c
            linux_ptrace.c
        src/sys/compat/linux/arch/i386 [netbsd-8]: linux_machdep.c
            linux_ptrace.c
        src/sys/compat/linux/arch/m68k [netbsd-8]: linux_machdep.c
        src/sys/compat/linux/arch/mips [netbsd-8]: linux_machdep.c
        src/sys/compat/linux/arch/powerpc [netbsd-8]: linux_exec_powerpc.c
            linux_machdep.c linux_ptrace.c
        src/sys/compat/linux/common [netbsd-8]: linux_cdrom.c linux_fdio.c
            linux_file.c linux_hdio.c linux_misc.c linux_mtio.c
            linux_oldolduname.c linux_olduname.c linux_sched.c linux_signal.c
            linux_socket.c linux_time.c
        src/sys/compat/linux32/arch/amd64 [netbsd-8]: linux32_machdep.c
        src/sys/compat/linux32/common [netbsd-8]: linux32_exec_elf32.c
            linux32_resource.c linux32_signal.c linux32_time.c
        src/sys/compat/netbsd32 [netbsd-8]: netbsd32_compat_12.c
            netbsd32_compat_20.c netbsd32_compat_43.c netbsd32_compat_50.c
            netbsd32_conv.h netbsd32_nfssvc.c netbsd32_ptrace.c
            netbsd32_signal.c netbsd32_time.c netbsd32_wait.c
        src/sys/compat/ossaudio [netbsd-8]: ossaudio.c
        src/sys/compat/sunos [netbsd-8]: sunos_ioctl.c sunos_misc.c
        src/sys/compat/sunos32 [netbsd-8]: sunos32_ioctl.c sunos32_misc.c
        src/sys/compat/sys [netbsd-8]: time_types.h
        src/sys/compat/ultrix [netbsd-8]: ultrix_ioctl.c ultrix_misc.c

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #1836):

        sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168
        sys/compat/sunos/sunos_misc.c: revision 1.177
        sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52
        sys/compat/common/kern_resource_43.c: revision 1.23
        sys/compat/netbsd32/netbsd32_conv.h: revision 1.46
        sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35
        sys/compat/common/vfs_syscalls_12.c: revision 1.38
        sys/compat/ultrix/ultrix_misc.c: revision 1.126
        sys/compat/common/kern_sig_43.c: revision 1.37
        sys/compat/linux/common/linux_mtio.c: revision 1.8
        sys/compat/freebsd/freebsd_misc.c: revision 1.34
        sys/compat/linux/common/linux_olduname.c: revision 1.67
        sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44
        sys/compat/freebsd/freebsd_sched.c: revision 1.23
        sys/compat/ossaudio/ossaudio.c: revision 1.84
        sys/compat/sys/time_types.h: revision 1.6
        sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51
        sys/compat/linux/common/linux_file.c: revision 1.119
        sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34
        sys/compat/netbsd32/netbsd32_wait.c: revision 1.25
        sys/compat/linux32/common/linux32_time.c: revision 1.38
        sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33
        sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52
        sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46
        sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36
        sys/compat/ultrix/ultrix_ioctl.c: revision 1.39
        sys/compat/linux/common/linux_misc.c: revision 1.252
        sys/compat/linux/common/linux_hdio.c: revision 1.19
        sys/compat/sunos/sunos_ioctl.c: revision 1.71
        sys/compat/linux/common/linux_sched.c: revision 1.79
        sys/compat/common/kern_info_43.c: revision 1.40
        sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20
        sys/compat/linux/common/linux_socket.c: revision 1.153
        sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60
        sys/compat/common/vfs_syscalls_43.c: revision 1.68
        sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25
        sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9
        sys/compat/common/kern_time_50.c: revision 1.37
        sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42
        sys/compat/linux/common/linux_cdrom.c: revision 1.28
        sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43
        sys/compat/common/kern_info_09.c: revision 1.22
        sys/compat/linux32/common/linux32_resource.c: revision 1.12
        sys/compat/linux/common/linux_oldolduname.c: revision 1.67
        sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8
        sys/compat/linux32/common/linux32_signal.c: revision 1.21
        sys/compat/common/kern_sig_13.c: revision 1.22
        sys/compat/sunos32/sunos32_ioctl.c: revision 1.36
        sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62
        sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23
        sys/compat/netbsd32/netbsd32_time.c: revision 1.56
        sys/compat/linux/common/linux_signal.c: revision 1.84
        sys/compat/netbsd32/netbsd32_signal.c: revision 1.52
        sys/compat/sunos32/sunos32_misc.c: revision 1.85
        sys/compat/linux/common/linux_time.c: revision 1.40
        sys/compat/linux/common/linux_fdio.c: revision 1.14
        sys/compat/common/vfs_syscalls_30.c: revision 1.43

sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure.  If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.20.90.1 src/sys/compat/common/kern_info_09.c
cvs rdiff -u -r1.35 -r1.35.22.1 src/sys/compat/common/kern_info_43.c
cvs rdiff -u -r1.21 -r1.21.90.1 src/sys/compat/common/kern_resource_43.c
cvs rdiff -u -r1.20 -r1.20.50.1 src/sys/compat/common/kern_sig_13.c
cvs rdiff -u -r1.34.50.1 -r1.34.50.2 src/sys/compat/common/kern_sig_43.c
cvs rdiff -u -r1.31 -r1.31.10.1 src/sys/compat/common/kern_time_50.c
cvs rdiff -u -r1.33.8.2 -r1.33.8.3 src/sys/compat/common/vfs_syscalls_12.c
cvs rdiff -u -r1.36.12.1 -r1.36.12.2 src/sys/compat/common/vfs_syscalls_30.c
cvs rdiff -u -r1.59.8.3 -r1.59.8.4 src/sys/compat/common/vfs_syscalls_43.c
cvs rdiff -u -r1.33 -r1.33.12.1 src/sys/compat/freebsd/freebsd_misc.c
cvs rdiff -u -r1.22 -r1.22.20.1 src/sys/compat/freebsd/freebsd_sched.c
cvs rdiff -u -r1.50 -r1.50.12.1 \
    src/sys/compat/linux/arch/alpha/linux_machdep.c
cvs rdiff -u -r1.51.6.3 -r1.51.6.4 \
    src/sys/compat/linux/arch/amd64/linux_machdep.c
cvs rdiff -u -r1.32 -r1.32.12.1 src/sys/compat/linux/arch/arm/linux_machdep.c
cvs rdiff -u -r1.19.10.1 -r1.19.10.2 \
    src/sys/compat/linux/arch/arm/linux_ptrace.c
cvs rdiff -u -r1.163 -r1.163.6.1 \
    src/sys/compat/linux/arch/i386/linux_machdep.c
cvs rdiff -u -r1.31.10.1 -r1.31.10.2 \
    src/sys/compat/linux/arch/i386/linux_ptrace.c
cvs rdiff -u -r1.42 -r1.42.52.1 \
    src/sys/compat/linux/arch/m68k/linux_machdep.c
cvs rdiff -u -r1.43 -r1.43.12.1 \
    src/sys/compat/linux/arch/mips/linux_machdep.c
cvs rdiff -u -r1.24 -r1.24.32.1 \
    src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c
cvs rdiff -u -r1.50 -r1.50.2.1 \
    src/sys/compat/linux/arch/powerpc/linux_machdep.c
cvs rdiff -u -r1.29.10.1 -r1.29.10.2 \
    src/sys/compat/linux/arch/powerpc/linux_ptrace.c
cvs rdiff -u -r1.27 -r1.27.80.1 src/sys/compat/linux/common/linux_cdrom.c
cvs rdiff -u -r1.13 -r1.13.84.1 src/sys/compat/linux/common/linux_fdio.c
cvs rdiff -u -r1.115 -r1.115.10.1 src/sys/compat/linux/common/linux_file.c
cvs rdiff -u -r1.17 -r1.17.10.1 src/sys/compat/linux/common/linux_hdio.c
cvs rdiff -u -r1.238.2.2 -r1.238.2.3 src/sys/compat/linux/common/linux_misc.c
cvs rdiff -u -r1.7 -r1.7.84.1 src/sys/compat/linux/common/linux_mtio.c
cvs rdiff -u -r1.66 -r1.66.80.1 \
    src/sys/compat/linux/common/linux_oldolduname.c \
    src/sys/compat/linux/common/linux_olduname.c
cvs rdiff -u -r1.69 -r1.69.4.1 src/sys/compat/linux/common/linux_sched.c
cvs rdiff -u -r1.79.6.1 -r1.79.6.2 src/sys/compat/linux/common/linux_signal.c
cvs rdiff -u -r1.138.6.6 -r1.138.6.7 \
    src/sys/compat/linux/common/linux_socket.c
cvs rdiff -u -r1.37.22.1 -r1.37.22.2 src/sys/compat/linux/common/linux_time.c
cvs rdiff -u -r1.38.6.2 -r1.38.6.3 \
    src/sys/compat/linux32/arch/amd64/linux32_machdep.c
cvs rdiff -u -r1.19 -r1.19.8.1 \
    src/sys/compat/linux32/common/linux32_exec_elf32.c
cvs rdiff -u -r1.11 -r1.11.30.1 \
    src/sys/compat/linux32/common/linux32_resource.c
cvs rdiff -u -r1.18.10.1 -r1.18.10.2 \
    src/sys/compat/linux32/common/linux32_signal.c
cvs rdiff -u -r1.37 -r1.37.30.1 src/sys/compat/linux32/common/linux32_time.c
cvs rdiff -u -r1.33 -r1.33.30.1 src/sys/compat/netbsd32/netbsd32_compat_12.c
cvs rdiff -u -r1.36.4.1 -r1.36.4.2 \
    src/sys/compat/netbsd32/netbsd32_compat_20.c
cvs rdiff -u -r1.54.8.1 -r1.54.8.2 \
    src/sys/compat/netbsd32/netbsd32_compat_43.c
cvs rdiff -u -r1.32.10.1 -r1.32.10.2 \
    src/sys/compat/netbsd32/netbsd32_compat_50.c
cvs rdiff -u -r1.31.8.4 -r1.31.8.5 src/sys/compat/netbsd32/netbsd32_conv.h
cvs rdiff -u -r1.5 -r1.5.8.1 src/sys/compat/netbsd32/netbsd32_nfssvc.c
cvs rdiff -u -r1.4.6.1 -r1.4.6.2 src/sys/compat/netbsd32/netbsd32_ptrace.c
cvs rdiff -u -r1.43.8.1 -r1.43.8.2 src/sys/compat/netbsd32/netbsd32_signal.c
cvs rdiff -u -r1.49 -r1.49.6.1 src/sys/compat/netbsd32/netbsd32_time.c
cvs rdiff -u -r1.23 -r1.23.8.1 src/sys/compat/netbsd32/netbsd32_wait.c
cvs rdiff -u -r1.70.6.3 -r1.70.6.4 src/sys/compat/ossaudio/ossaudio.c
cvs rdiff -u -r1.68 -r1.68.8.1 src/sys/compat/sunos/sunos_ioctl.c
cvs rdiff -u -r1.170.10.1 -r1.170.10.2 src/sys/compat/sunos/sunos_misc.c
cvs rdiff -u -r1.34 -r1.34.10.1 src/sys/compat/sunos32/sunos32_ioctl.c
cvs rdiff -u -r1.77.10.1 -r1.77.10.2 src/sys/compat/sunos32/sunos32_misc.c
cvs rdiff -u -r1.1.58.1 -r1.1.58.2 src/sys/compat/sys/time_types.h
cvs rdiff -u -r1.37 -r1.37.8.1 src/sys/compat/ultrix/ultrix_ioctl.c
cvs rdiff -u -r1.122 -r1.122.32.1 src/sys/compat/ultrix/ultrix_misc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/common/kern_info_09.c
diff -u src/sys/compat/common/kern_info_09.c:1.20 src/sys/compat/common/kern_info_09.c:1.20.90.1
--- src/sys/compat/common/kern_info_09.c:1.20	Thu Dec 20 23:02:44 2007
+++ src/sys/compat/common/kern_info_09.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_info_09.c,v 1.20 2007/12/20 23:02:44 dsl Exp $	*/
+/*	$NetBSD: kern_info_09.c,v 1.20.90.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1991, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_info_09.c,v 1.20 2007/12/20 23:02:44 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_info_09.c,v 1.20.90.1 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -100,6 +100,7 @@ compat_09_sys_uname(struct lwp *l, const
 	const char *cp;
 	char *dp, *ep;
 
+	memset(&outsname, 0, sizeof(outsname));
 	strncpy(outsname.sysname, ostype, sizeof(outsname.sysname));
 	strncpy(outsname.nodename, hostname, sizeof(outsname.nodename));
 	strncpy(outsname.release, osrelease, sizeof(outsname.release));

Index: src/sys/compat/common/kern_info_43.c
diff -u src/sys/compat/common/kern_info_43.c:1.35 src/sys/compat/common/kern_info_43.c:1.35.22.1
--- src/sys/compat/common/kern_info_43.c:1.35	Mon Mar 24 20:08:08 2014
+++ src/sys/compat/common/kern_info_43.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_info_43.c,v 1.35 2014/03/24 20:08:08 christos Exp $	*/
+/*	$NetBSD: kern_info_43.c,v 1.35.22.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1991, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_info_43.c,v 1.35 2014/03/24 20:08:08 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_info_43.c,v 1.35.22.1 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -233,6 +233,8 @@ compat_43_sys_getkerninfo(struct lwp *l,
 				break;
 			}
 
+			memset(&ksi, 0, sizeof(ksi));
+
 #define COPY(fld)							\
 			ksi.fld = us - (u_long) usi;			\
 			if ((error = copyoutstr(fld, us, 1024, &len)) != 0)\

Index: src/sys/compat/common/kern_resource_43.c
diff -u src/sys/compat/common/kern_resource_43.c:1.21 src/sys/compat/common/kern_resource_43.c:1.21.90.1
--- src/sys/compat/common/kern_resource_43.c:1.21	Thu Dec 20 23:02:44 2007
+++ src/sys/compat/common/kern_resource_43.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_resource_43.c,v 1.21 2007/12/20 23:02:44 dsl Exp $	*/
+/*	$NetBSD: kern_resource_43.c,v 1.21.90.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986, 1991, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_resource_43.c,v 1.21 2007/12/20 23:02:44 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_resource_43.c,v 1.21.90.1 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -63,6 +63,7 @@ compat_43_sys_getrlimit(struct lwp *l, c
 
 	if ((u_int)which >= RLIM_NLIMITS)
 		return (EINVAL);
+	memset(&olim, 0, sizeof(olim));
 	olim.rlim_cur = p->p_rlimit[which].rlim_cur;
 	if (olim.rlim_cur == -1)
 		olim.rlim_cur = 0x7fffffff;

Index: src/sys/compat/common/kern_sig_13.c
diff -u src/sys/compat/common/kern_sig_13.c:1.20 src/sys/compat/common/kern_sig_13.c:1.20.50.1
--- src/sys/compat/common/kern_sig_13.c:1.20	Wed Jan 19 10:21:16 2011
+++ src/sys/compat/common/kern_sig_13.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sig_13.c,v 1.20 2011/01/19 10:21:16 tsutsui Exp $	*/
+/*	$NetBSD: kern_sig_13.c,v 1.20.50.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sig_13.c,v 1.20 2011/01/19 10:21:16 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig_13.c,v 1.20.50.1 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -51,6 +51,7 @@ void
 native_sigset13_to_sigset(const sigset13_t *oss, sigset_t *ss)
 {
 
+	memset(ss, 0, sizeof(*ss));
 	ss->__bits[0] = *oss;
 	ss->__bits[1] = 0;
 	ss->__bits[2] = 0;
@@ -68,6 +69,7 @@ void
 native_sigaction13_to_sigaction(const struct sigaction13 *osa, struct sigaction *sa)
 {
 
+	memset(sa, 0, sizeof(*sa));
 	sa->sa_handler = osa->osa_handler;
 	native_sigset13_to_sigset(&osa->osa_mask, &sa->sa_mask);
 	sa->sa_flags = osa->osa_flags;
@@ -77,6 +79,7 @@ void
 native_sigaction_to_sigaction13(const struct sigaction *sa, struct sigaction13 *osa)
 {
 
+	memset(osa, 0, sizeof(*osa));
 	osa->osa_handler = sa->sa_handler;
 	native_sigset_to_sigset13(&sa->sa_mask, &osa->osa_mask);
 	osa->osa_flags = sa->sa_flags;

Index: src/sys/compat/common/kern_sig_43.c
diff -u src/sys/compat/common/kern_sig_43.c:1.34.50.1 src/sys/compat/common/kern_sig_43.c:1.34.50.2
--- src/sys/compat/common/kern_sig_43.c:1.34.50.1	Tue Jan 21 18:12:53 2020
+++ src/sys/compat/common/kern_sig_43.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sig_43.c,v 1.34.50.1 2020/01/21 18:12:53 martin Exp $	*/
+/*	$NetBSD: kern_sig_43.c,v 1.34.50.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sig_43.c,v 1.34.50.1 2020/01/21 18:12:53 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig_43.c,v 1.34.50.2 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -73,6 +73,7 @@ void
 compat_43_sigmask_to_sigset(const int *sm, sigset_t *ss)
 {
 
+	memset(ss, 0, sizeof(*ss));
 	ss->__bits[0] = *sm;
 	ss->__bits[1] = 0;
 	ss->__bits[2] = 0;
@@ -89,6 +90,8 @@ compat_43_sigset_to_sigmask(const sigset
 void
 compat_43_sigvec_to_sigaction(const struct sigvec *sv, struct sigaction *sa)
 {
+
+	memset(sa, 0, sizeof(*sa));
 	sa->sa_handler = sv->sv_handler;
 	compat_43_sigmask_to_sigset(&sv->sv_mask, &sa->sa_mask);
 	sa->sa_flags = sv->sv_flags ^ SA_RESTART;
@@ -97,6 +100,8 @@ compat_43_sigvec_to_sigaction(const stru
 void
 compat_43_sigaction_to_sigvec(const struct sigaction *sa, struct sigvec *sv)
 {
+
+	memset(sv, 0, sizeof(*sv));
 	sv->sv_handler = sa->sa_handler;
 	compat_43_sigset_to_sigmask(&sa->sa_mask, &sv->sv_mask);
 	sv->sv_flags = sa->sa_flags ^ SA_RESTART;
@@ -105,6 +110,7 @@ compat_43_sigaction_to_sigvec(const stru
 void
 compat_43_sigstack_to_sigaltstack(const struct sigstack *ss, struct sigaltstack *sa)
 {
+	memset(sa, 0, sizeof(*sa));
 	sa->ss_sp = ss->ss_sp;
 	sa->ss_size = SIGSTKSZ;	/* Use the recommended size */
 	sa->ss_flags = 0;

Index: src/sys/compat/common/kern_time_50.c
diff -u src/sys/compat/common/kern_time_50.c:1.31 src/sys/compat/common/kern_time_50.c:1.31.10.1
--- src/sys/compat/common/kern_time_50.c:1.31	Fri Mar 11 18:32:29 2016
+++ src/sys/compat/common/kern_time_50.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_time_50.c,v 1.31 2016/03/11 18:32:29 christos Exp $	*/
+/*	$NetBSD: kern_time_50.c,v 1.31.10.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.31 2016/03/11 18:32:29 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.31.10.1 2023/06/21 21:04:01 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_aio.h"
@@ -191,6 +191,7 @@ compat_50_sys_gettimeofday(struct lwp *l
 		 * NetBSD has no kernel notion of time zone, so we just
 		 * fake up a timezone struct and return it if demanded.
 		 */
+		memset(&tzfake, 0, sizeof(tzfake));
 		tzfake.tz_minuteswest = 0;
 		tzfake.tz_dsttime = 0;
 		error = copyout(&tzfake, SCARG(uap, tzp), sizeof(tzfake));
@@ -425,6 +426,7 @@ compat_50_sys_mq_timedreceive(struct lwp
 void
 rusage_to_rusage50(const struct rusage *ru, struct rusage50 *ru50)
 {
+	memset(ru50, 0, sizeof(*ru50));
 	(void)memcpy(&ru50->ru_first, &ru->ru_first,
 	    (char *)&ru50->ru_last - (char *)&ru50->ru_first +
 	    sizeof(ru50->ru_last));

Index: src/sys/compat/common/vfs_syscalls_12.c
diff -u src/sys/compat/common/vfs_syscalls_12.c:1.33.8.2 src/sys/compat/common/vfs_syscalls_12.c:1.33.8.3
--- src/sys/compat/common/vfs_syscalls_12.c:1.33.8.2	Sun Dec 10 09:36:36 2017
+++ src/sys/compat/common/vfs_syscalls_12.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_12.c,v 1.33.8.2 2017/12/10 09:36:36 snj Exp $	*/
+/*	$NetBSD: vfs_syscalls_12.c,v 1.33.8.3 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_12.c,v 1.33.8.2 2017/12/10 09:36:36 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_12.c,v 1.33.8.3 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -65,6 +65,7 @@ void
 compat_12_stat_conv(const struct stat *st, struct stat12 *ost)
 {
 
+	memset(ost, 0, sizeof(*ost));
 	ost->st_dev = st->st_dev;
 	ost->st_ino = st->st_ino;
 	ost->st_mode = st->st_mode & 0xffff;
@@ -183,6 +184,7 @@ again:
 				off += reclen;
 			continue;
 		}
+		memset(&idb, 0, sizeof(idb));
 		if (bdp->d_namlen >= sizeof(idb.d_name))
 			idb.d_namlen = sizeof(idb.d_name) - 1;
 		else

Index: src/sys/compat/common/vfs_syscalls_30.c
diff -u src/sys/compat/common/vfs_syscalls_30.c:1.36.12.1 src/sys/compat/common/vfs_syscalls_30.c:1.36.12.2
--- src/sys/compat/common/vfs_syscalls_30.c:1.36.12.1	Sun Aug 15 10:03:46 2021
+++ src/sys/compat/common/vfs_syscalls_30.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_30.c,v 1.36.12.1 2021/08/15 10:03:46 martin Exp $	*/
+/*	$NetBSD: vfs_syscalls_30.c,v 1.36.12.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 2005, 2008 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_30.c,v 1.36.12.1 2021/08/15 10:03:46 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_30.c,v 1.36.12.2 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -252,6 +252,7 @@ again:
 			error = EINVAL;
 			goto out;
 		}
+		memset(&idb, 0, sizeof(idb));
 		if (bdp->d_namlen >= sizeof(idb.d_name))
 			idb.d_namlen = sizeof(idb.d_name) - 1;
 		else
@@ -341,6 +342,7 @@ compat_30_sys_getfh(struct lwp *l, const
 	sz = sizeof(struct compat_30_fhandle);
 	error = vfs_composefh(vp, (void *)&fh, &sz);
 	vput(vp);
+	CTASSERT(FHANDLE_SIZE_COMPAT == sizeof(struct compat_30_fhandle));
 	if (sz != FHANDLE_SIZE_COMPAT) {
 		error = EINVAL;
 	}

Index: src/sys/compat/common/vfs_syscalls_43.c
diff -u src/sys/compat/common/vfs_syscalls_43.c:1.59.8.3 src/sys/compat/common/vfs_syscalls_43.c:1.59.8.4
--- src/sys/compat/common/vfs_syscalls_43.c:1.59.8.3	Sun Aug 15 10:03:46 2021
+++ src/sys/compat/common/vfs_syscalls_43.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_43.c,v 1.59.8.3 2021/08/15 10:03:46 martin Exp $	*/
+/*	$NetBSD: vfs_syscalls_43.c,v 1.59.8.4 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.59.8.3 2021/08/15 10:03:46 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.59.8.4 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -456,6 +456,7 @@ again:
 				off += reclen;
 			continue;
 		}
+		memset(&idb, 0, sizeof(idb));
 		if (bdp->d_namlen >= sizeof(idb.d_name))
 			idb.d_namlen = sizeof(idb.d_name) - 1;
 		else

Index: src/sys/compat/freebsd/freebsd_misc.c
diff -u src/sys/compat/freebsd/freebsd_misc.c:1.33 src/sys/compat/freebsd/freebsd_misc.c:1.33.12.1
--- src/sys/compat/freebsd/freebsd_misc.c:1.33	Sun Nov  9 18:30:38 2014
+++ src/sys/compat/freebsd/freebsd_misc.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: freebsd_misc.c,v 1.33 2014/11/09 18:30:38 maxv Exp $	*/
+/*	$NetBSD: freebsd_misc.c,v 1.33.12.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*
  * Copyright (c) 1995 Frank van der Linden
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_misc.c,v 1.33 2014/11/09 18:30:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: freebsd_misc.c,v 1.33.12.1 2023/06/21 21:04:02 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ntp.h"
@@ -183,6 +183,7 @@ freebsd_sys_sigaction4(struct lwp *l, co
 	if (error)
 		return (error);
 	if (SCARG(uap, osa)) {
+		memset(&oesa, 0, sizeof(oesa));
 		oesa.freebsd_sa_handler = obsa.sa_handler;
 		oesa.freebsd_sa_mask    = obsa.sa_mask;
 		oesa.freebsd_sa_flags   = obsa.sa_flags;

Index: src/sys/compat/freebsd/freebsd_sched.c
diff -u src/sys/compat/freebsd/freebsd_sched.c:1.22 src/sys/compat/freebsd/freebsd_sched.c:1.22.20.1
--- src/sys/compat/freebsd/freebsd_sched.c:1.22	Sat Jun 28 11:06:31 2014
+++ src/sys/compat/freebsd/freebsd_sched.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: freebsd_sched.c,v 1.22 2014/06/28 11:06:31 maxv Exp $	*/
+/*	$NetBSD: freebsd_sched.c,v 1.22.20.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_sched.c,v 1.22 2014/06/28 11:06:31 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: freebsd_sched.c,v 1.22.20.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -122,6 +122,7 @@ sched_native2freebsd(int native_policy, 
 
 	if (native_params != NULL && freebsd_params != NULL) {
 		/* XXX: Needs adjustment to do a proper conversion. */
+		memset(freebsd_params, 0, sizeof(*freebsd_params));
 		freebsd_params->sched_priority = native_params->sched_priority;
 	}
 

Index: src/sys/compat/linux/arch/alpha/linux_machdep.c
diff -u src/sys/compat/linux/arch/alpha/linux_machdep.c:1.50 src/sys/compat/linux/arch/alpha/linux_machdep.c:1.50.12.1
--- src/sys/compat/linux/arch/alpha/linux_machdep.c:1.50	Sun Nov  9 17:48:07 2014
+++ src/sys/compat/linux/arch/alpha/linux_machdep.c	Wed Jun 21 21:04:03 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.50 2014/11/09 17:48:07 maxv Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.50.12.1 2023/06/21 21:04:03 martin Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50 2014/11/09 17:48:07 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50.12.1 2023/06/21 21:04:03 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -139,6 +139,8 @@ setup_linux_rt_sigframe(struct trapframe
 		    sig, &onstack, sfp);
 #endif /* DEBUG */
 
+	memset(&sigframe, 0, sizeof(sigframe));
+
 	/*
 	 * Build the signal context to be used by sigreturn.
 	 */
@@ -232,6 +234,8 @@ void setup_linux_sigframe(struct trapfra
 		    sig, &onstack, sfp);
 #endif /* DEBUG */
 
+	memset(&sigframe, 0, sizeof(sigframe));
+
 	/*
 	 * Build the signal context to be used by sigreturn.
 	 */

Index: src/sys/compat/linux/arch/amd64/linux_machdep.c
diff -u src/sys/compat/linux/arch/amd64/linux_machdep.c:1.51.6.3 src/sys/compat/linux/arch/amd64/linux_machdep.c:1.51.6.4
--- src/sys/compat/linux/arch/amd64/linux_machdep.c:1.51.6.3	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/linux/arch/amd64/linux_machdep.c	Wed Jun 21 21:04:03 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.51.6.3 2020/01/21 18:12:54 martin Exp $ */
+/*	$NetBSD: linux_machdep.c,v 1.51.6.4 2023/06/21 21:04:03 martin Exp $ */
 
 /*-
  * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved.
@@ -33,7 +33,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.51.6.3 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.51.6.4 2023/06/21 21:04:03 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -225,6 +225,7 @@ linux_sendsig(const ksiginfo_t *ksi, con
 	if (fpsp != NULL) {
 		size_t fp_size = sizeof fpregs;
 		/* The netbsd and linux structures both match the fxsave data */
+		memset(&fpregs, 0, sizeof(fpregs));
 		(void)process_read_fpregs(l, &fpregs, &fp_size);
 		error = copyout(&fpregs, fpsp, sizeof(*fpsp));
 	}

Index: src/sys/compat/linux/arch/arm/linux_machdep.c
diff -u src/sys/compat/linux/arch/arm/linux_machdep.c:1.32 src/sys/compat/linux/arch/arm/linux_machdep.c:1.32.12.1
--- src/sys/compat/linux/arch/arm/linux_machdep.c:1.32	Sun Nov  9 17:48:07 2014
+++ src/sys/compat/linux/arch/arm/linux_machdep.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.32 2014/11/09 17:48:07 maxv Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.32.12.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.32 2014/11/09 17:48:07 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.32.12.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -107,6 +107,8 @@ linux_sendsig(const ksiginfo_t *ksi, con
 
 	/* Build stack frame for signal trampoline. */
 
+	memset(&frame, 0, sizeof(frame));
+
 	/* Save register context. */
 	frame.sf_sc.sc_r0     = tf->tf_r0;
 	frame.sf_sc.sc_r1     = tf->tf_r1;

Index: src/sys/compat/linux/arch/arm/linux_ptrace.c
diff -u src/sys/compat/linux/arch/arm/linux_ptrace.c:1.19.10.1 src/sys/compat/linux/arch/arm/linux_ptrace.c:1.19.10.2
--- src/sys/compat/linux/arch/arm/linux_ptrace.c:1.19.10.1	Thu Apr 12 13:42:49 2018
+++ src/sys/compat/linux/arch/arm/linux_ptrace.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_ptrace.c,v 1.19.10.1 2018/04/12 13:42:49 martin Exp $	*/
+/*	$NetBSD: linux_ptrace.c,v 1.19.10.2 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.19.10.1 2018/04/12 13:42:49 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.19.10.2 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -180,6 +180,7 @@ linux_sys_ptrace_arch(struct lwp *l, con
 		if (error) {
 			break;
 		}
+		memset(linux_regs, 0, sizeof(*linux_regs));
 		memcpy(linux_regs->uregs, regs->r, 13 * sizeof(register_t));
 		linux_regs->uregs[LINUX_REG_SP] = regs->r_sp;
 		linux_regs->uregs[LINUX_REG_LR] = regs->r_lr;

Index: src/sys/compat/linux/arch/i386/linux_machdep.c
diff -u src/sys/compat/linux/arch/i386/linux_machdep.c:1.163 src/sys/compat/linux/arch/i386/linux_machdep.c:1.163.6.1
--- src/sys/compat/linux/arch/i386/linux_machdep.c:1.163	Sun Feb  5 10:42:22 2017
+++ src/sys/compat/linux/arch/i386/linux_machdep.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.163 2017/02/05 10:42:22 maxv Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.163.6.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 2000, 2008, 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.163 2017/02/05 10:42:22 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.163.6.1 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_vm86.h"
@@ -264,6 +264,8 @@ linux_rt_sendsig(const ksiginfo_t *ksi, 
 	    onstack, fp, sig, tf->tf_eip,
 	    ((struct pcb *)lwp_getpcb(l))->pcb_cr2));
 
+	memset(&frame, 0, sizeof(frame));
+
 	/* Build stack frame for signal trampoline. */
 	frame.sf_handler = catcher;
 	frame.sf_sig = native_to_linux_signo[sig];
@@ -341,6 +343,8 @@ linux_old_sendsig(const ksiginfo_t *ksi,
 	    onstack, fp, sig, tf->tf_eip,
 	    ((struct pcb *)lwp_getpcb(l))->pcb_cr2));
 
+	memset(&frame, 0, sizeof(frame));
+
 	/* Build stack frame for signal trampoline. */
 	frame.sf_handler = catcher;
 	frame.sf_sig = native_to_linux_signo[sig];
@@ -866,6 +870,7 @@ linux_machdepioctl(struct lwp *l, const 
 		com = VT_OPENQRY;
 		break;
 	case LINUX_VT_GETMODE:
+		memset(&lvt, 0, sizeof(lvt));
 		error = fp->f_ops->fo_ioctl(fp, VT_GETMODE, &lvt);
 		if (error != 0)
 			goto out;
@@ -961,6 +966,7 @@ linux_machdepioctl(struct lwp *l, const 
 			sectors = label.d_nsectors;
 		}
 		if (com == LINUX_HDIO_GETGEO) {
+			memset(&hdg, 0, sizeof(hdg));
 			hdg.start = start;
 			hdg.heads = heads;
 			hdg.cylinders = cylinders;
@@ -968,6 +974,7 @@ linux_machdepioctl(struct lwp *l, const 
 			error = copyout(&hdg, SCARG(uap, data), sizeof hdg);
 			goto out;
 		} else {
+			memset(&hdg_big, 0, sizeof(hdg_big));
 			hdg_big.start = start;
 			hdg_big.heads = heads;
 			hdg_big.cylinders = cylinders;

Index: src/sys/compat/linux/arch/i386/linux_ptrace.c
diff -u src/sys/compat/linux/arch/i386/linux_ptrace.c:1.31.10.1 src/sys/compat/linux/arch/i386/linux_ptrace.c:1.31.10.2
--- src/sys/compat/linux/arch/i386/linux_ptrace.c:1.31.10.1	Thu Apr 12 13:42:48 2018
+++ src/sys/compat/linux/arch/i386/linux_ptrace.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_ptrace.c,v 1.31.10.1 2018/04/12 13:42:48 martin Exp $	*/
+/*	$NetBSD: linux_ptrace.c,v 1.31.10.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.31.10.1 2018/04/12 13:42:48 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.31.10.2 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -223,6 +223,7 @@ linux_sys_ptrace_arch(struct lwp *l, con
 		if (error) {
 			break;
 		}
+		memset(linux_regs, 0, sizeof(*linux_regs));
 		linux_regs->ebx = regs->r_ebx;
 		linux_regs->ecx = regs->r_ecx;
 		linux_regs->edx = regs->r_edx;

Index: src/sys/compat/linux/arch/m68k/linux_machdep.c
diff -u src/sys/compat/linux/arch/m68k/linux_machdep.c:1.42 src/sys/compat/linux/arch/m68k/linux_machdep.c:1.42.52.1
--- src/sys/compat/linux/arch/m68k/linux_machdep.c:1.42	Wed Jul  7 01:30:34 2010
+++ src/sys/compat/linux/arch/m68k/linux_machdep.c	Wed Jun 21 21:04:03 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.42 2010/07/07 01:30:34 chs Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.42.52.1 2023/06/21 21:04:03 martin Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.42 2010/07/07 01:30:34 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.42.52.1 2023/06/21 21:04:03 martin Exp $");
 
 #define COMPAT_LINUX 1
 
@@ -118,6 +118,8 @@ setup_linux_sigframe(struct frame *frame
 		       p->p_pid, sig, &ft, fp, &fp->sf_c.c_sc, ft);
 #endif
 
+	memset(&kf, 0, sizeof(kf));
+
 	/* Build stack frame. */
 	kf.sf_psigtramp = fp->sf_sigtramp;	/* return addr for handler */
 	kf.sf_signum = native_to_linux_signo[sig];
@@ -280,6 +282,8 @@ setup_linux_rt_sigframe(struct frame *fr
 		       p->p_pid, sig, &ft, fp, &fp->sf_uc, ft);
 #endif
 
+	memset(&kf, 0, sizeof(kf));
+
 	/* Build stack frame. */
 	kf.sf_psigtramp = fp->sf_sigtramp;	/* return addr for handler */
 	kf.sf_signum = native_to_linux_signo[sig];

Index: src/sys/compat/linux/arch/mips/linux_machdep.c
diff -u src/sys/compat/linux/arch/mips/linux_machdep.c:1.43 src/sys/compat/linux/arch/mips/linux_machdep.c:1.43.12.1
--- src/sys/compat/linux/arch/mips/linux_machdep.c:1.43	Sun Nov  9 17:48:07 2014
+++ src/sys/compat/linux/arch/mips/linux_machdep.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.43 2014/11/09 17:48:07 maxv Exp $ */
+/*	$NetBSD: linux_machdep.c,v 1.43.12.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 1995, 2000, 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.43 2014/11/09 17:48:07 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.43.12.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -401,6 +401,7 @@ linux_sys_new_uname(struct lwp *l, const
         } */ *uap = v;
         struct linux_utsname luts;
 
+	memset(&luts, 0, sizeof(luts));
         strlcpy(luts.l_sysname, linux_sysname, sizeof(luts.l_sysname));
         strlcpy(luts.l_nodename, hostname, sizeof(luts.l_nodename));
         strlcpy(luts.l_release, "2.4.0", sizeof(luts.l_release));

Index: src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c
diff -u src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c:1.24 src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c:1.24.32.1
--- src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c:1.24	Tue Feb 21 18:10:00 2012
+++ src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_exec_powerpc.c,v 1.24 2012/02/21 18:10:00 rjs Exp $ */
+/* $NetBSD: linux_exec_powerpc.c,v 1.24.32.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_exec_powerpc.c,v 1.24 2012/02/21 18:10:00 rjs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_exec_powerpc.c,v 1.24.32.1 2023/06/21 21:04:02 martin Exp $");
 
 #define ELFSIZE 32
 
@@ -93,7 +93,7 @@ ELFNAME2(linux,copyargs)(struct lwp *l, 
 	    & ~LINUX_SHIFT);
 #endif
 
-	memset(ai, 0, sizeof(AuxInfo) * LINUX_ELF_AUX_ENTRIES);
+	memset(ai, 0, sizeof(ai));
 
 	a = ai;
 

Index: src/sys/compat/linux/arch/powerpc/linux_machdep.c
diff -u src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.50 src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.50.2.1
--- src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.50	Wed May  3 00:23:42 2017
+++ src/sys/compat/linux/arch/powerpc/linux_machdep.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.50 2017/05/03 00:23:42 chs Exp $ */
+/*	$NetBSD: linux_machdep.c,v 1.50.2.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 1995, 2000, 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50 2017/05/03 00:23:42 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50.2.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -162,6 +162,7 @@ linux_sendsig(const ksiginfo_t *ksi, con
 	 *
 	 * Save register context.
 	 */
+	memset(&linux_regs, 0, sizeof(linux_regs));
 	for (i = 0; i < 32; i++)
 		linux_regs.lgpr[i] = tf->tf_fixreg[i];
 	linux_regs.lnip = tf->tf_srr0;

Index: src/sys/compat/linux/arch/powerpc/linux_ptrace.c
diff -u src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.29.10.1 src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.29.10.2
--- src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.29.10.1	Thu Apr 12 13:42:49 2018
+++ src/sys/compat/linux/arch/powerpc/linux_ptrace.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_ptrace.c,v 1.29.10.1 2018/04/12 13:42:49 martin Exp $ */
+/*	$NetBSD: linux_ptrace.c,v 1.29.10.2 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 1999, 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.29.10.1 2018/04/12 13:42:49 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.29.10.2 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -200,6 +200,7 @@ linux_sys_ptrace_arch(struct lwp *l, con
 		if (error) {
 			break;
 		}
+		memset(linux_regs, 0, sizeof(*linux_regs));
 		for (i = 0; i <= 31; i++) {
 			linux_regs->lgpr[i] = regs->fixreg[i];
 		}
@@ -309,7 +310,7 @@ linux_sys_ptrace_arch(struct lwp *l, con
 			break;
 		}
 		error = copyout (retval, (void *)SCARG(uap, data),
-		    sizeof(retval));
+		    sizeof(*retval));
 		*retval = SCARG(uap, data);
 		break;
 

Index: src/sys/compat/linux/common/linux_cdrom.c
diff -u src/sys/compat/linux/common/linux_cdrom.c:1.27 src/sys/compat/linux/common/linux_cdrom.c:1.27.80.1
--- src/sys/compat/linux/common/linux_cdrom.c:1.27	Mon Apr 28 20:23:43 2008
+++ src/sys/compat/linux/common/linux_cdrom.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_cdrom.c,v 1.27 2008/04/28 20:23:43 martin Exp $ */
+/*	$NetBSD: linux_cdrom.c,v 1.27.80.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*
  * Copyright (c) 1997, 2008 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_cdrom.c,v 1.27 2008/04/28 20:23:43 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_cdrom.c,v 1.27.80.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -186,6 +186,7 @@ linux_ioctl_cdrom(struct lwp *l, const s
 		if (error)
 			break;
 
+		memset(&l_tochdr, 0, sizeof(l_tochdr));
 		l_tochdr.cdth_trk0 = t_header.starting_track;
 		l_tochdr.cdth_trk1 = t_header.ending_track;
 
@@ -238,6 +239,7 @@ linux_ioctl_cdrom(struct lwp *l, const s
 		if (error)
 			break;
 
+		memset(&l_volctrl, 0, sizeof(l_volctrl));
 		l_volctrl.channel0 = t_vol.vol[0];
 		l_volctrl.channel1 = t_vol.vol[1];
 		l_volctrl.channel2 = t_vol.vol[2];

Index: src/sys/compat/linux/common/linux_fdio.c
diff -u src/sys/compat/linux/common/linux_fdio.c:1.13 src/sys/compat/linux/common/linux_fdio.c:1.13.84.1
--- src/sys/compat/linux/common/linux_fdio.c:1.13	Fri Mar 21 21:54:58 2008
+++ src/sys/compat/linux/common/linux_fdio.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_fdio.c,v 1.13 2008/03/21 21:54:58 ad Exp $	*/
+/*	$NetBSD: linux_fdio.c,v 1.13.84.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*
  * Copyright (c) 2000 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_fdio.c,v 1.13 2008/03/21 21:54:58 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_fdio.c,v 1.13.84.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -107,6 +107,7 @@ linux_ioctl_fdio(struct lwp *l, const st
 		error = ioctlf(fp, FDIOCGETFORMAT, &fparams);
 		if (error != 0)
 			break;
+		memset(&lflop, 0, sizeof(lflop));
 		lflop.size = fparams.ncyl * fparams.nspt * fparams.ntrk;
 		lflop.sect = fparams.nspt;
 		lflop.head = fparams.ntrk;

Index: src/sys/compat/linux/common/linux_file.c
diff -u src/sys/compat/linux/common/linux_file.c:1.115 src/sys/compat/linux/common/linux_file.c:1.115.10.1
--- src/sys/compat/linux/common/linux_file.c:1.115	Sun Mar  1 13:19:39 2015
+++ src/sys/compat/linux/common/linux_file.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_file.c,v 1.115 2015/03/01 13:19:39 njoly Exp $	*/
+/*	$NetBSD: linux_file.c,v 1.115.10.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.115 2015/03/01 13:19:39 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.115.10.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -445,6 +445,7 @@ static void
 bsd_to_linux_stat(struct stat *bsp, struct linux_stat *lsp)
 {
 
+	memset(lsp, 0, sizeof(*lsp));
 	lsp->lst_dev     = linux_fakedev(bsp->st_dev, 0);
 	lsp->lst_ino     = bsp->st_ino;
 	lsp->lst_mode    = (linux_mode_t)bsp->st_mode;

Index: src/sys/compat/linux/common/linux_hdio.c
diff -u src/sys/compat/linux/common/linux_hdio.c:1.17 src/sys/compat/linux/common/linux_hdio.c:1.17.10.1
--- src/sys/compat/linux/common/linux_hdio.c:1.17	Tue Dec  8 20:36:14 2015
+++ src/sys/compat/linux/common/linux_hdio.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_hdio.c,v 1.17 2015/12/08 20:36:14 christos Exp $	*/
+/*	$NetBSD: linux_hdio.c,v 1.17.10.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*
  * Copyright (c) 2000 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_hdio.c,v 1.17 2015/12/08 20:36:14 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_hdio.c,v 1.17.10.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -113,6 +113,7 @@ linux_ioctl_hdio(struct lwp *l, const st
 			error = error1;
 			break;
 		}
+		memset(&hdg, 0, sizeof(hdg));
 		hdg.start = error1 != 0 ? pi.pi_offset : 0;
 		hdg.heads = label.d_ntracks;
 		hdg.cylinders = label.d_ncylinders;
@@ -130,6 +131,7 @@ linux_ioctl_hdio(struct lwp *l, const st
 			error = error1;
 			break;
 		}
+		memset(&hdg_big, 0, sizeof(hdg_big));
 		hdg_big.start = error1 != 0 ? pi.pi_offset : 0;
 		hdg_big.heads = label.d_ntracks;
 		hdg_big.cylinders = label.d_ncylinders;

Index: src/sys/compat/linux/common/linux_misc.c
diff -u src/sys/compat/linux/common/linux_misc.c:1.238.2.2 src/sys/compat/linux/common/linux_misc.c:1.238.2.3
--- src/sys/compat/linux/common/linux_misc.c:1.238.2.2	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/linux/common/linux_misc.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_misc.c,v 1.238.2.2 2020/01/21 18:12:54 martin Exp $	*/
+/*	$NetBSD: linux_misc.c,v 1.238.2.3 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998, 1999, 2008 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_misc.c,v 1.238.2.2 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_misc.c,v 1.238.2.3 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -628,6 +628,8 @@ linux_sys_times(struct lwp *l, const str
 		struct linux_tms ltms;
 		struct rusage ru;
 
+		memset(&ltms, 0, sizeof(ltms));
+
 		mutex_enter(p->p_lock);
 		calcru(p, &ru.ru_utime, &ru.ru_stime, NULL, NULL);
 		ltms.ltms_utime = CONVTCK(ru.ru_utime);
@@ -1392,6 +1394,7 @@ linux_sys_getrlimit(struct lwp *l, const
 	if (which < 0)
 		return -which;
 
+	memset(&orl, 0, sizeof(orl));
 	bsd_to_linux_rlimit(&orl, &l->l_proc->p_rlimit[which]);
 
 	return copyout(&orl, SCARG(uap, rlp), sizeof(orl));

Index: src/sys/compat/linux/common/linux_mtio.c
diff -u src/sys/compat/linux/common/linux_mtio.c:1.7 src/sys/compat/linux/common/linux_mtio.c:1.7.84.1
--- src/sys/compat/linux/common/linux_mtio.c:1.7	Fri Mar 21 21:54:58 2008
+++ src/sys/compat/linux/common/linux_mtio.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_mtio.c,v 1.7 2008/03/21 21:54:58 ad Exp $ */
+/* $NetBSD: linux_mtio.c,v 1.7.84.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*
  * Copyright (c) 2005 Soren S. Jorvang.  All rights reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_mtio.c,v 1.7 2008/03/21 21:54:58 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_mtio.c,v 1.7.84.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -106,6 +106,7 @@ linux_ioctl_mtio(struct lwp *l, const st
 		error = ioctlf(fp, MTIOCTOP, &mt);
 		break;
 	case LINUX_MTIOCGET:
+		memset(&lmtget, 0, sizeof(lmtget));
 		lmtget.mt_type = LINUX_MT_ISUNKNOWN;
 		lmtget.mt_resid = 0;
 		lmtget.mt_dsreg = 0;

Index: src/sys/compat/linux/common/linux_oldolduname.c
diff -u src/sys/compat/linux/common/linux_oldolduname.c:1.66 src/sys/compat/linux/common/linux_oldolduname.c:1.66.80.1
--- src/sys/compat/linux/common/linux_oldolduname.c:1.66	Mon Apr 28 20:23:43 2008
+++ src/sys/compat/linux/common/linux_oldolduname.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_oldolduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $	*/
+/*	$NetBSD: linux_oldolduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_oldolduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_oldolduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -58,6 +58,8 @@ linux_sys_oldolduname(struct lwp *l, con
 	} */
 	struct linux_oldoldutsname luts;
 
+	memset(&luts, 0, sizeof(luts));
+
 	strlcpy(luts.l_sysname, linux_sysname, sizeof(luts.l_sysname));
 	strlcpy(luts.l_nodename, hostname, sizeof(luts.l_nodename));
 	strlcpy(luts.l_release, linux_release, sizeof(luts.l_release));
Index: src/sys/compat/linux/common/linux_olduname.c
diff -u src/sys/compat/linux/common/linux_olduname.c:1.66 src/sys/compat/linux/common/linux_olduname.c:1.66.80.1
--- src/sys/compat/linux/common/linux_olduname.c:1.66	Mon Apr 28 20:23:43 2008
+++ src/sys/compat/linux/common/linux_olduname.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_olduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $	*/
+/*	$NetBSD: linux_olduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_olduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_olduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -61,6 +61,8 @@ linux_sys_olduname(struct lwp *l, const 
 	} */
 	struct linux_oldutsname luts;
 
+	memset(&luts, 0, sizeof(luts));
+
 	strlcpy(luts.l_sysname, linux_sysname, sizeof(luts.l_sysname));
 	strlcpy(luts.l_nodename, hostname, sizeof(luts.l_nodename));
 	strlcpy(luts.l_release, linux_release, sizeof(luts.l_release));

Index: src/sys/compat/linux/common/linux_sched.c
diff -u src/sys/compat/linux/common/linux_sched.c:1.69 src/sys/compat/linux/common/linux_sched.c:1.69.4.1
--- src/sys/compat/linux/common/linux_sched.c:1.69	Fri Apr 21 15:10:34 2017
+++ src/sys/compat/linux/common/linux_sched.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_sched.c,v 1.69 2017/04/21 15:10:34 christos Exp $	*/
+/*	$NetBSD: linux_sched.c,v 1.69.4.1 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sched.c,v 1.69 2017/04/21 15:10:34 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_sched.c,v 1.69.4.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -381,6 +381,8 @@ sched_native2linux(int native_policy, st
 		KASSERT(prio <= SCHED_PRI_MAX);
 		KASSERT(linux_params != NULL);
 
+		memset(linux_params, 0, sizeof(*linux_params));
+
 		DPRINTF(("%s: native: policy %d, priority %d\n",
 		    __func__, native_policy, prio));
 

Index: src/sys/compat/linux/common/linux_signal.c
diff -u src/sys/compat/linux/common/linux_signal.c:1.79.6.1 src/sys/compat/linux/common/linux_signal.c:1.79.6.2
--- src/sys/compat/linux/common/linux_signal.c:1.79.6.1	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/linux/common/linux_signal.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_signal.c,v 1.79.6.1 2020/01/21 18:12:54 martin Exp $	*/
+/*	$NetBSD: linux_signal.c,v 1.79.6.2 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.79.6.1 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.79.6.2 2023/06/21 21:04:02 martin Exp $");
 
 #define COMPAT_LINUX 1
 
@@ -274,6 +274,8 @@ linux_to_native_sigflags(const unsigned 
 void
 linux_old_to_native_sigaction(struct sigaction *bsa, const struct linux_old_sigaction *lsa)
 {
+
+	memset(bsa, 0, sizeof(*bsa));
 	bsa->sa_handler = lsa->linux_sa_handler;
 	linux_old_to_native_sigset(&bsa->sa_mask, &lsa->linux_sa_mask);
 	bsa->sa_flags = linux_to_native_sigflags(lsa->linux_sa_flags);
@@ -282,6 +284,8 @@ linux_old_to_native_sigaction(struct sig
 void
 native_to_linux_old_sigaction(struct linux_old_sigaction *lsa, const struct sigaction *bsa)
 {
+
+	memset(lsa, 0, sizeof(*lsa));
 	lsa->linux_sa_handler = bsa->sa_handler;
 	native_to_linux_old_sigset(&lsa->linux_sa_mask, &bsa->sa_mask);
 	lsa->linux_sa_flags = native_to_linux_sigflags(bsa->sa_flags);
@@ -294,6 +298,8 @@ native_to_linux_old_sigaction(struct lin
 void
 linux_to_native_sigaction(struct sigaction *bsa, const struct linux_sigaction *lsa)
 {
+
+	memset(bsa, 0, sizeof(*bsa));
 	bsa->sa_handler = lsa->linux_sa_handler;
 	linux_to_native_sigset(&bsa->sa_mask, &lsa->linux_sa_mask);
 	bsa->sa_flags = linux_to_native_sigflags(lsa->linux_sa_flags);
@@ -302,6 +308,8 @@ linux_to_native_sigaction(struct sigacti
 void
 native_to_linux_sigaction(struct linux_sigaction *lsa, const struct sigaction *bsa)
 {
+
+	memset(lsa, 0, sizeof(*lsa));
 	lsa->linux_sa_handler = bsa->sa_handler;
 	native_to_linux_sigset(&lsa->linux_sa_mask, &bsa->sa_mask);
 	lsa->linux_sa_flags = native_to_linux_sigflags(bsa->sa_flags);

Index: src/sys/compat/linux/common/linux_socket.c
diff -u src/sys/compat/linux/common/linux_socket.c:1.138.6.6 src/sys/compat/linux/common/linux_socket.c:1.138.6.7
--- src/sys/compat/linux/common/linux_socket.c:1.138.6.6	Fri Jul 17 15:28:08 2020
+++ src/sys/compat/linux/common/linux_socket.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_socket.c,v 1.138.6.6 2020/07/17 15:28:08 martin Exp $	*/
+/*	$NetBSD: linux_socket.c,v 1.138.6.7 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.138.6.6 2020/07/17 15:28:08 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.138.6.7 2023/06/21 21:04:02 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -455,6 +455,7 @@ linux_sys_sendto(struct lwp *l, const st
 static void
 linux_to_bsd_msghdr(const struct linux_msghdr *lmsg, struct msghdr *bmsg)
 {
+	memset(bmsg, 0, sizeof(*bmsg));
 	bmsg->msg_name = lmsg->msg_name;
 	bmsg->msg_namelen = lmsg->msg_namelen;
 	bmsg->msg_iov = lmsg->msg_iov;
@@ -467,6 +468,7 @@ linux_to_bsd_msghdr(const struct linux_m
 static void
 bsd_to_linux_msghdr(const struct msghdr *bmsg, struct linux_msghdr *lmsg)
 {
+	memset(lmsg, 0, sizeof(*lmsg));
 	lmsg->msg_name = bmsg->msg_name;
 	lmsg->msg_namelen = bmsg->msg_namelen;
 	lmsg->msg_iov = bmsg->msg_iov;
@@ -715,6 +717,7 @@ linux_copyout_msg_control(struct lwp *l,
 		 * 1. different values for level/type on some archs
 		 * 2. different alignment of CMSG_DATA on some archs
 		 */
+		memset(&linux_cmsg, 0, sizeof(linux_cmsg));
 		linux_cmsg.cmsg_len = cmsg->cmsg_len - LINUX_CMSG_ALIGN_DELTA;
 		linux_cmsg.cmsg_level = cmsg->cmsg_level;
 		linux_cmsg.cmsg_type = cmsg->cmsg_type;

Index: src/sys/compat/linux/common/linux_time.c
diff -u src/sys/compat/linux/common/linux_time.c:1.37.22.1 src/sys/compat/linux/common/linux_time.c:1.37.22.2
--- src/sys/compat/linux/common/linux_time.c:1.37.22.1	Tue Aug  8 15:59:04 2017
+++ src/sys/compat/linux/common/linux_time.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_time.c,v 1.37.22.1 2017/08/08 15:59:04 martin Exp $ */
+/*	$NetBSD: linux_time.c,v 1.37.22.2 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_time.c,v 1.37.22.1 2017/08/08 15:59:04 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_time.c,v 1.37.22.2 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/ucred.h>
@@ -117,6 +117,7 @@ linux_sys_settimeofday(struct lwp *l, co
 void
 native_to_linux_timespec(struct linux_timespec *ltp, struct timespec *ntp)
 {
+	memset(ltp, 0, sizeof(*ltp));
 	ltp->tv_sec = ntp->tv_sec;
 	ltp->tv_nsec = ntp->tv_nsec;
 }
@@ -124,6 +125,7 @@ native_to_linux_timespec(struct linux_ti
 void
 linux_to_native_timespec(struct timespec *ntp, struct linux_timespec *ltp)
 {
+	memset(ntp, 0, sizeof(*ntp));
 	ntp->tv_sec = ltp->tv_sec;
 	ntp->tv_nsec = ltp->tv_nsec;
 }

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.2 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.3
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.2	Fri Apr  5 07:48:05 2019
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Wed Jun 21 21:04:03 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.38.6.2 2019/04/05 07:48:05 martin Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.38.6.3 2023/06/21 21:04:03 martin Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.38.6.2 2019/04/05 07:48:05 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.38.6.3 2023/06/21 21:04:03 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -122,6 +122,8 @@ linux32_old_sendsig(const ksiginfo_t *ks
 	DPRINTF(("old: onstack = %d, fp = %p sig = %d rip = 0x%lx\n",
 	    onstack, fp, sig, tf->tf_rip));
 
+	memset(&frame, 0, sizeof(frame));
+
 	/* Build stack frame for signal trampoline. */
 	NETBSD32PTR32(frame.sf_handler, catcher);
 	frame.sf_sig = native_to_linux32_signo[sig];

Index: src/sys/compat/linux32/common/linux32_exec_elf32.c
diff -u src/sys/compat/linux32/common/linux32_exec_elf32.c:1.19 src/sys/compat/linux32/common/linux32_exec_elf32.c:1.19.8.1
--- src/sys/compat/linux32/common/linux32_exec_elf32.c:1.19	Sat Aug  6 15:13:13 2016
+++ src/sys/compat/linux32/common/linux32_exec_elf32.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_exec_elf32.c,v 1.19 2016/08/06 15:13:13 maxv Exp $ */
+/*	$NetBSD: linux32_exec_elf32.c,v 1.19.8.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*-                     
  * Copyright (c) 1995, 1998, 2000, 2001,2006 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_exec_elf32.c,v 1.19 2016/08/06 15:13:13 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_exec_elf32.c,v 1.19.8.1 2023/06/21 21:04:02 martin Exp $");
 
 #define	ELFSIZE		32
 
@@ -227,6 +227,8 @@ linux32_elf32_copyargs(struct lwp *l, st
 	*stackp += len;
 
 #if 0
+	memset(&esd, 0, sizeof(esd));
+
 	memcpy(esd.kernel_vsyscall, linux32_kernel_vsyscall,
 	    sizeof(linux32_kernel_vsyscall));
 

Index: src/sys/compat/linux32/common/linux32_resource.c
diff -u src/sys/compat/linux32/common/linux32_resource.c:1.11 src/sys/compat/linux32/common/linux32_resource.c:1.11.30.1
--- src/sys/compat/linux32/common/linux32_resource.c:1.11	Sat Sep 22 22:34:03 2012
+++ src/sys/compat/linux32/common/linux32_resource.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_resource.c,v 1.11 2012/09/22 22:34:03 joerg Exp $ */
+/*	$NetBSD: linux32_resource.c,v 1.11.30.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -33,7 +33,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: linux32_resource.c,v 1.11 2012/09/22 22:34:03 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_resource.c,v 1.11.30.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -87,6 +87,7 @@ linux32_sys_getrlimit(struct lwp *l, con
 	if (which < 0)
 		return -which;
 
+	memset(&orl, 0, sizeof(orl));
 	bsd_to_linux_rlimit(&orl, &l->l_proc->p_rlimit[which]);
 
 	return copyout(&orl, SCARG_P32(uap, rlp), sizeof(orl));

Index: src/sys/compat/linux32/common/linux32_signal.c
diff -u src/sys/compat/linux32/common/linux32_signal.c:1.18.10.1 src/sys/compat/linux32/common/linux32_signal.c:1.18.10.2
--- src/sys/compat/linux32/common/linux32_signal.c:1.18.10.1	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/linux32/common/linux32_signal.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_signal.c,v 1.18.10.1 2020/01/21 18:12:54 martin Exp $ */
+/*	$NetBSD: linux32_signal.c,v 1.18.10.2 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.18.10.1 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.18.10.2 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/ucred.h>
@@ -215,6 +215,7 @@ linux32_to_native_sigflags(const unsigne
 void
 linux32_to_native_sigaction(struct sigaction *bsa, const struct linux32_sigaction *lsa)
 {
+	memset(bsa, 0, sizeof(*bsa));
 	bsa->sa_handler = NETBSD32PTR64(lsa->linux_sa_handler);
 	linux32_to_native_sigset(&bsa->sa_mask, &lsa->linux_sa_mask);
 	bsa->sa_flags = linux32_to_native_sigflags(lsa->linux_sa_flags);
@@ -223,6 +224,7 @@ linux32_to_native_sigaction(struct sigac
 void
 native_to_linux32_sigaction(struct linux32_sigaction *lsa, const struct sigaction *bsa)
 {
+	memset(lsa, 0, sizeof(*lsa));
 	NETBSD32PTR32(lsa->linux_sa_handler, bsa->sa_handler);
 	native_to_linux32_sigset(&lsa->linux_sa_mask, &bsa->sa_mask);
 	lsa->linux_sa_flags = native_to_linux32_sigflags(bsa->sa_flags);

Index: src/sys/compat/linux32/common/linux32_time.c
diff -u src/sys/compat/linux32/common/linux32_time.c:1.37 src/sys/compat/linux32/common/linux32_time.c:1.37.30.1
--- src/sys/compat/linux32/common/linux32_time.c:1.37	Tue Oct  2 01:44:28 2012
+++ src/sys/compat/linux32/common/linux32_time.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_time.c,v 1.37 2012/10/02 01:44:28 christos Exp $ */
+/*	$NetBSD: linux32_time.c,v 1.37.30.1 2023/06/21 21:04:02 martin Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -33,7 +33,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: linux32_time.c,v 1.37 2012/10/02 01:44:28 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_time.c,v 1.37.30.1 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -166,6 +166,8 @@ linux32_sys_times(struct lwp *l, const s
 		struct linux32_tms ltms32;
 		struct rusage ru;
 
+		memset(&ltms32, 0, sizeof(ltms32));
+
 		mutex_enter(p->p_lock);
 		calcru(p, &ru.ru_utime, &ru.ru_stime, NULL, NULL);
 		ltms32.ltms32_utime = CONVTCK(ru.ru_utime);
@@ -237,6 +239,8 @@ linux32_sys_utime(struct lwp *l, const s
 void
 native_to_linux32_timespec(struct linux32_timespec *ltp, struct timespec *ntp)
 {
+
+	memset(ltp, 0, sizeof(*ltp));
 	ltp->tv_sec = ntp->tv_sec;
 	ltp->tv_nsec = ntp->tv_nsec;
 }
@@ -244,6 +248,8 @@ native_to_linux32_timespec(struct linux3
 void
 linux32_to_native_timespec(struct timespec *ntp, struct linux32_timespec *ltp)
 {
+
+	memset(ntp, 0, sizeof(*ntp));
 	ntp->tv_sec = ltp->tv_sec;
 	ntp->tv_nsec = ltp->tv_nsec;
 }

Index: src/sys/compat/netbsd32/netbsd32_compat_12.c
diff -u src/sys/compat/netbsd32/netbsd32_compat_12.c:1.33 src/sys/compat/netbsd32/netbsd32_compat_12.c:1.33.30.1
--- src/sys/compat/netbsd32/netbsd32_compat_12.c:1.33	Mon Dec 10 02:21:58 2012
+++ src/sys/compat/netbsd32/netbsd32_compat_12.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_12.c,v 1.33 2012/12/10 02:21:58 chs Exp $	*/
+/*	$NetBSD: netbsd32_compat_12.c,v 1.33.30.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_12.c,v 1.33 2012/12/10 02:21:58 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_12.c,v 1.33.30.1 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -59,6 +59,7 @@ static void
 netbsd32_stat12_to_netbsd32(struct stat12 *sp12, struct netbsd32_stat12 *sp32)
 {
 
+	memset(sp32, 0, sizeof(*sp32));
 	sp32->st_dev = sp12->st_dev;
 	sp32->st_ino = sp12->st_ino;
 	sp32->st_mode = sp12->st_mode;

Index: src/sys/compat/netbsd32/netbsd32_compat_20.c
diff -u src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36.4.1 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36.4.2
--- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36.4.1	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/netbsd32/netbsd32_compat_20.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_20.c,v 1.36.4.1 2020/01/21 18:12:54 martin Exp $	*/
+/*	$NetBSD: netbsd32_compat_20.c,v 1.36.4.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.36.4.1 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.36.4.2 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -53,6 +53,8 @@ static inline void compat_20_netbsd32_fr
 static inline void
 compat_20_netbsd32_from_statvfs(struct statvfs *sbp, struct netbsd32_statfs *sb32p)
 {
+
+	memset(sb32p, 0, sizeof(*sb32p));
 	sb32p->f_type = 0; /* XXX Put an actual value? */
 	sb32p->f_flags = sbp->f_flag;
 	sb32p->f_bsize = (netbsd32_long)sbp->f_bsize;

Index: src/sys/compat/netbsd32/netbsd32_compat_43.c
diff -u src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54.8.1 src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54.8.2
--- src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54.8.1	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/netbsd32/netbsd32_compat_43.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_43.c,v 1.54.8.1 2020/01/21 18:12:54 martin Exp $	*/
+/*	$NetBSD: netbsd32_compat_43.c,v 1.54.8.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.54.8.1 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.54.8.2 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_43.h"
@@ -644,6 +644,7 @@ compat_43_netbsd32_osigvec(struct lwp *l
 		return error;
 
 	if (SCARG_P32(uap, osv)) {
+		memset(&sv32, 0, sizeof(sv32));
 		NETBSD32PTR32(sv32.sv_handler, osa.sa_handler);
 		sv32.sv_mask = osa.sa_mask.__bits[0];
 		sv32.sv_flags = osa.sa_flags ^ SA_RESTART;
@@ -702,6 +703,7 @@ compat_43_netbsd32_osigstack(struct lwp 
 		return error;
 
 	if (SCARG_P32(uap, oss)) {
+		memset(&ss32, 0, sizeof(ss32));
 		NETBSD32PTR32(ss32.ss_sp, osa.ss_sp);
 		ss32.ss_onstack = (osa.ss_flags & SS_ONSTACK) != 0;
 		error = copyout(&ss32, SCARG_P32(uap, oss), sizeof(ss32));

Index: src/sys/compat/netbsd32/netbsd32_compat_50.c
diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32.10.1 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32.10.2
--- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32.10.1	Tue Jan 21 18:12:54 2020
+++ src/sys/compat/netbsd32/netbsd32_compat_50.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_50.c,v 1.32.10.1 2020/01/21 18:12:54 martin Exp $	*/
+/*	$NetBSD: netbsd32_compat_50.c,v 1.32.10.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.32.10.1 2020/01/21 18:12:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.32.10.2 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -163,6 +163,7 @@ compat_50_netbsd32_gettimeofday(struct l
 		 * NetBSD has no kernel notion of time zone, so we just
 		 * fake up a timezone struct and return it if demanded.
 		 */
+		memset(&tzfake, 0, sizeof(tzfake));
 		tzfake.tz_minuteswest = 0;
 		tzfake.tz_dsttime = 0;
 		error = copyout(&tzfake, SCARG_P32(uap, tzp), sizeof(tzfake));
@@ -244,6 +245,8 @@ compat_50_netbsd32_adjtime(struct lwp *l
 		return (error);
 
 	if (SCARG_P32(uap, olddelta)) {
+		memset(&atv, 0, sizeof(atv));
+
 		mutex_spin_enter(&timecounter_lock);
 		atv.tv_sec = time_adjtime / 1000000;
 		atv.tv_usec = time_adjtime % 1000000;
@@ -390,6 +393,7 @@ compat_50_netbsd32_timer_settime(struct 
 		return error;
 
 	if (ovp) {
+		memset(&its32, 0, sizeof(its32));
 		netbsd32_from_timespec50(&ovp->it_interval, &its32.it_interval);
 		netbsd32_from_timespec50(&ovp->it_value, &its32.it_value);
 		return copyout(&its32, SCARG_P32(uap, ovalue), sizeof(its32));
@@ -412,6 +416,8 @@ compat_50_netbsd32_timer_gettime(struct 
 	    &its)) != 0)
 		return error;
 
+	memset(&its32, 0, sizeof(its32));
+
 	netbsd32_from_timespec50(&its.it_interval, &its32.it_interval);
 	netbsd32_from_timespec50(&its.it_value, &its32.it_value);
 

Index: src/sys/compat/netbsd32/netbsd32_conv.h
diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.31.8.4 src/sys/compat/netbsd32/netbsd32_conv.h:1.31.8.5
--- src/sys/compat/netbsd32/netbsd32_conv.h:1.31.8.4	Wed Jun 21 20:38:35 2023
+++ src/sys/compat/netbsd32/netbsd32_conv.h	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_conv.h,v 1.31.8.4 2023/06/21 20:38:35 martin Exp $	*/
+/*	$NetBSD: netbsd32_conv.h,v 1.31.8.5 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -63,6 +63,7 @@ netbsd32_from_timeval50(const struct tim
     struct netbsd32_timeval50 *tv32)
 {
 
+	memset(tv32, 0, sizeof(*tv32));
 	tv32->tv_sec = (netbsd32_time50_t)tv->tv_sec;
 	tv32->tv_usec = (netbsd32_long)tv->tv_usec;
 }
@@ -72,6 +73,7 @@ netbsd32_from_timeval(const struct timev
     struct netbsd32_timeval *tv32)
 {
 
+	memset(tv32, 0, sizeof(*tv32));
 	tv32->tv_sec = (netbsd32_time_t)tv->tv_sec;
 	tv32->tv_usec = tv->tv_usec;
 }
@@ -81,6 +83,7 @@ netbsd32_to_timeval50(const struct netbs
     struct timeval *tv)
 {
 
+	memset(tv, 0, sizeof(*tv));
 	tv->tv_sec = (time_t)tv32->tv_sec;
 	tv->tv_usec = tv32->tv_usec;
 }
@@ -90,6 +93,7 @@ netbsd32_to_timeval(const struct netbsd3
     struct timeval *tv)
 {
 
+	memset(tv, 0, sizeof(*tv));
 	tv->tv_sec = (time_t)tv32->tv_sec;
 	tv->tv_usec = tv32->tv_usec;
 }
@@ -99,6 +103,7 @@ netbsd32_from_itimerval50(const struct i
     struct netbsd32_itimerval50 *itv32)
 {
 
+	memset(itv32, 0, sizeof(*itv32));
 	netbsd32_from_timeval50(&itv->it_interval,
 			     &itv32->it_interval);
 	netbsd32_from_timeval50(&itv->it_value,
@@ -110,6 +115,7 @@ netbsd32_from_itimerval(const struct iti
     struct netbsd32_itimerval *itv32)
 {
 
+	memset(itv32, 0, sizeof(*itv32));
 	netbsd32_from_timeval(&itv->it_interval,
 			     &itv32->it_interval);
 	netbsd32_from_timeval(&itv->it_value,
@@ -121,6 +127,7 @@ netbsd32_to_itimerval50(const struct net
     struct itimerval *itv)
 {
 
+	memset(itv, 0, sizeof(*itv));
 	netbsd32_to_timeval50(&itv32->it_interval, &itv->it_interval);
 	netbsd32_to_timeval50(&itv32->it_value, &itv->it_value);
 }
@@ -130,6 +137,7 @@ netbsd32_to_itimerval(const struct netbs
     struct itimerval *itv)
 {
 
+	memset(itv, 0, sizeof(*itv));
 	netbsd32_to_timeval(&itv32->it_interval, &itv->it_interval);
 	netbsd32_to_timeval(&itv32->it_value, &itv->it_value);
 }
@@ -139,6 +147,7 @@ netbsd32_to_timespec50(const struct netb
     struct timespec *p)
 {
 
+	memset(p, 0, sizeof(*p));
 	p->tv_sec = (time_t)s32p->tv_sec;
 	p->tv_nsec = (long)s32p->tv_nsec;
 }
@@ -148,6 +157,7 @@ netbsd32_to_timespec(const struct netbsd
     struct timespec *p)
 {
 
+	memset(p, 0, sizeof(*p));
 	p->tv_sec = (time_t)s32p->tv_sec;
 	p->tv_nsec = (long)s32p->tv_nsec;
 }
@@ -157,6 +167,7 @@ netbsd32_from_timespec50(const struct ti
     struct netbsd32_timespec50 *s32p)
 {
 
+	memset(s32p, 0, sizeof(*s32p));
 	s32p->tv_sec = (netbsd32_time50_t)p->tv_sec;
 	s32p->tv_nsec = (netbsd32_long)p->tv_nsec;
 }
@@ -166,6 +177,7 @@ netbsd32_from_timespec(const struct time
     struct netbsd32_timespec *s32p)
 {
 
+	memset(s32p, 0, sizeof(*s32p));
 	s32p->tv_sec = (netbsd32_time_t)p->tv_sec;
 	s32p->tv_nsec = (netbsd32_long)p->tv_nsec;
 }
@@ -175,6 +187,7 @@ netbsd32_from_rusage(const struct rusage
     struct netbsd32_rusage *ru32p)
 {
 
+	memset(ru32p, 0, sizeof(*ru32p));
 	netbsd32_from_timeval(&rup->ru_utime, &ru32p->ru_utime);
 	netbsd32_from_timeval(&rup->ru_stime, &ru32p->ru_stime);
 #define C(var)	ru32p->var = (netbsd32_long)rup->var
@@ -200,6 +213,7 @@ netbsd32_to_rusage(const struct netbsd32
     struct rusage *rup)
 {
 
+	memset(rup, 0, sizeof(*rup));
 	netbsd32_to_timeval(&ru32p->ru_utime, &rup->ru_utime);
 	netbsd32_to_timeval(&ru32p->ru_stime, &rup->ru_stime);
 #define C(var)	rup->var = (long)ru32p->var
@@ -225,6 +239,7 @@ netbsd32_from_rusage50(const struct rusa
     struct netbsd32_rusage50 *ru32p)
 {
 
+	memset(ru32p, 0, sizeof(*ru32p));
 	netbsd32_from_timeval50(&rup->ru_utime, &ru32p->ru_utime);
 	netbsd32_from_timeval50(&rup->ru_stime, &ru32p->ru_stime);
 #define C(var)	ru32p->var = (netbsd32_long)rup->var
@@ -259,6 +274,7 @@ netbsd32_to_iovecin(const struct netbsd3
 	 * each field separately.  I'm doing the latter to reduce
 	 * the number of MALLOC()s.
 	 */
+	memset(iovp, 0, sizeof(*iovp));
 	total_iov_len = 0;
 	for (i = 0; i < len; i++, iovp++, iov32p++) {
 		if ((error = copyin(&iov32p->iov_base, &iov_base, sizeof(iov_base))))
@@ -289,6 +305,7 @@ static __inline void
 netbsd32_to_msghdr(const struct netbsd32_msghdr *mhp32, struct msghdr *mhp)
 {
 
+	memset(mhp, 0, sizeof(*mhp));
 	mhp->msg_name = NETBSD32PTR64(mhp32->msg_name);
 	mhp->msg_namelen = mhp32->msg_namelen;
 	mhp->msg_iovlen = (size_t)mhp32->msg_iovlen;
@@ -302,6 +319,7 @@ static __inline void
 netbsd32_from_msghdr(struct netbsd32_msghdr *mhp32, const struct msghdr *mhp)
 {
 
+	memset(mhp32, 0, sizeof(*mhp32));
 	NETBSD32PTR32(mhp32->msg_name, mhp->msg_name);
 	mhp32->msg_namelen = mhp->msg_namelen;
 	mhp32->msg_iovlen = mhp->msg_iovlen;
@@ -313,6 +331,8 @@ netbsd32_from_msghdr(struct netbsd32_msg
 static __inline void
 netbsd32_from_statvfs(const struct statvfs *sbp, struct netbsd32_statvfs *sb32p)
 {
+
+	memset(sb32p, 0, sizeof(*sb32p));
 	sb32p->f_flag = sbp->f_flag;
 	sb32p->f_bsize = (netbsd32_u_long)sbp->f_bsize;
 	sb32p->f_frsize = (netbsd32_u_long)sbp->f_frsize;
@@ -354,6 +374,7 @@ static __inline void
 netbsd32_from_timex(const struct timex *txp, struct netbsd32_timex *tx32p)
 {
 
+	memset(tx32p, 0, sizeof(*tx32p));
 	tx32p->modes = txp->modes;
 	tx32p->offset = (netbsd32_long)txp->offset;
 	tx32p->freq = (netbsd32_long)txp->freq;
@@ -377,6 +398,7 @@ static __inline void
 netbsd32_to_timex(const struct netbsd32_timex *tx32p, struct timex *txp)
 {
 
+	memset(txp, 0, sizeof(*txp));
 	txp->modes = tx32p->modes;
 	txp->offset = (long)tx32p->offset;
 	txp->freq = (long)tx32p->freq;
@@ -399,6 +421,7 @@ netbsd32_to_timex(const struct netbsd32_
 static __inline void
 netbsd32_from___stat13(const struct stat *sbp, struct netbsd32_stat13 *sb32p)
 {
+
 	memset(sb32p, 0, sizeof *sb32p);
 	sb32p->st_dev = (uint32_t)sbp->st_dev;
 	sb32p->st_ino = sbp->st_ino;
@@ -425,6 +448,7 @@ netbsd32_from___stat13(const struct stat
 static __inline void
 netbsd32_from___stat50(const struct stat *sbp, struct netbsd32_stat50 *sb32p)
 {
+
 	memset(sb32p, 0, sizeof *sb32p);
 	sb32p->st_dev = (uint32_t)sbp->st_dev;
 	sb32p->st_ino = sbp->st_ino;
@@ -451,6 +475,7 @@ netbsd32_from___stat50(const struct stat
 static __inline void
 netbsd32_from_stat(const struct stat *sbp, struct netbsd32_stat *sb32p)
 {
+
 	memset(sb32p, 0, sizeof *sb32p);
 	sb32p->st_dev = sbp->st_dev;
 	sb32p->st_ino = sbp->st_ino;
@@ -479,6 +504,7 @@ netbsd32_to_ipc_perm(const struct netbsd
     struct ipc_perm *ipp)
 {
 
+	memset(ipp, 0, sizeof(*ipp));
 	ipp->cuid = ip32p->cuid;
 	ipp->cgid = ip32p->cgid;
 	ipp->uid = ip32p->uid;
@@ -507,6 +533,7 @@ static __inline void
 netbsd32_to_msg(const struct netbsd32_msg *m32p, struct msg *mp)
 {
 
+	memset(mp, 0, sizeof(*mp));
 	mp->msg_next = NETBSD32PTR64(m32p->msg_next);
 	mp->msg_type = (long)m32p->msg_type;
 	mp->msg_ts = m32p->msg_ts;
@@ -529,6 +556,7 @@ netbsd32_to_msqid_ds50(const struct netb
     struct msqid_ds *dsp)
 {
 
+	memset(dsp, 0, sizeof(*dsp));
 	netbsd32_to_ipc_perm(&ds32p->msg_perm, &dsp->msg_perm);
 	dsp->_msg_cbytes = (u_long)ds32p->_msg_cbytes;
 	dsp->msg_qnum = (u_long)ds32p->msg_qnum;
@@ -545,6 +573,7 @@ netbsd32_to_msqid_ds(const struct netbsd
     struct msqid_ds *dsp)
 {
 
+	memset(dsp, 0, sizeof(*dsp));
 	netbsd32_to_ipc_perm(&ds32p->msg_perm, &dsp->msg_perm);
 	dsp->_msg_cbytes = (u_long)ds32p->_msg_cbytes;
 	dsp->msg_qnum = (u_long)ds32p->msg_qnum;
@@ -595,6 +624,7 @@ netbsd32_to_shmid_ds50(const struct netb
     struct shmid_ds *dsp)
 {
 
+	memset(dsp, 0, sizeof(*dsp));
 	netbsd32_to_ipc_perm(&ds32p->shm_perm, &dsp->shm_perm);
 	dsp->shm_segsz = ds32p->shm_segsz;
 	dsp->shm_lpid = ds32p->shm_lpid;
@@ -610,6 +640,7 @@ netbsd32_to_shmid_ds(const struct netbsd
     struct shmid_ds *dsp)
 {
 
+	memset(dsp, 0, sizeof(*dsp));
 	netbsd32_to_ipc_perm(&ds32p->shm_perm, &dsp->shm_perm);
 	dsp->shm_segsz = ds32p->shm_segsz;
 	dsp->shm_lpid = ds32p->shm_lpid;
@@ -657,6 +688,7 @@ netbsd32_to_semid_ds50(const struct netb
     struct semid_ds *dsp)
 {
 
+	memset(dsp, 0, sizeof(*dsp));
 	netbsd32_to_ipc_perm(&s32dsp->sem_perm, &dsp->sem_perm);
 	dsp->sem_nsems = (time_t)s32dsp->sem_nsems;
 	dsp->sem_otime = (time_t)s32dsp->sem_otime;
@@ -668,6 +700,7 @@ netbsd32_to_semid_ds(const struct netbsd
     struct semid_ds *dsp)
 {
 
+	memset(dsp, 0, sizeof(*dsp));
 	netbsd32_to_ipc_perm(&s32dsp->sem_perm, &dsp->sem_perm);
 	dsp->sem_nsems = s32dsp->sem_nsems;
 	dsp->sem_otime = s32dsp->sem_otime;
@@ -703,6 +736,7 @@ netbsd32_from_loadavg(struct netbsd32_lo
     const struct loadavg *av)
 {
 
+	memset(av32, 0, sizeof(*av32));
 	av32->ldavg[0] = av->ldavg[0];
 	av32->ldavg[1] = av->ldavg[1];
 	av32->ldavg[2] = av->ldavg[2];
@@ -712,6 +746,8 @@ netbsd32_from_loadavg(struct netbsd32_lo
 static __inline void
 netbsd32_to_kevent(struct netbsd32_kevent *ke32, struct kevent *ke)
 {
+
+	memset(ke, 0, sizeof(*ke));
 	ke->ident = ke32->ident;
 	ke->filter = ke32->filter;
 	ke->flags = ke32->flags;
@@ -723,6 +759,8 @@ netbsd32_to_kevent(struct netbsd32_keven
 static __inline void
 netbsd32_from_kevent(struct kevent *ke, struct netbsd32_kevent *ke32)
 {
+
+	memset(ke32, 0, sizeof(*ke32));
 	ke32->ident = ke->ident;
 	ke32->filter = ke->filter;
 	ke32->flags = ke->flags;
@@ -734,6 +772,8 @@ netbsd32_from_kevent(struct kevent *ke, 
 static __inline void
 netbsd32_to_sigevent(const struct netbsd32_sigevent *ev32, struct sigevent *ev)
 {
+
+	memset(ev, 0, sizeof(*ev));
 	ev->sigev_notify = ev32->sigev_notify;
 	ev->sigev_signo = ev32->sigev_signo;
 	/*
@@ -796,6 +836,7 @@ netbsd32_copyout_plistref(netbsd32_point
 {
 	struct netbsd32_plistref n32plist;
 
+	memset(&n32plist, 0, sizeof(n32plist));
 	NETBSD32PTR32(n32plist.pref_plist, p->pref_plist);
 	n32plist.pref_len = p->pref_len;
 	return copyout(&n32plist, NETBSD32PTR64(n32p),
@@ -806,6 +847,8 @@ static __inline void
 netbsd32_to_mq_attr(const struct netbsd32_mq_attr *a32,
     struct mq_attr *attr)
 {
+
+	memset(attr, 0, sizeof(*attr));
 	attr->mq_flags = a32->mq_flags;
 	attr->mq_maxmsg = a32->mq_maxmsg;
 	attr->mq_msgsize = a32->mq_msgsize;
@@ -816,6 +859,8 @@ static __inline void
 netbsd32_from_mq_attr(const struct mq_attr *attr,
 	struct netbsd32_mq_attr *a32)
 {
+
+	memset(a32, 0, sizeof(*a32));
 	a32->mq_flags = attr->mq_flags;
 	a32->mq_maxmsg = attr->mq_maxmsg;
 	a32->mq_msgsize = attr->mq_msgsize;

Index: src/sys/compat/netbsd32/netbsd32_nfssvc.c
diff -u src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.5 src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.5.8.1
--- src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.5	Sat Oct 15 06:50:13 2016
+++ src/sys/compat/netbsd32/netbsd32_nfssvc.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_nfssvc.c,v 1.5 2016/10/15 06:50:13 skrll Exp $	*/
+/*	$NetBSD: netbsd32_nfssvc.c,v 1.5.8.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 2015 Matthew R. Green
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_nfssvc.c,v 1.5 2016/10/15 06:50:13 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_nfssvc.c,v 1.5.8.1 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_nfs.h"
@@ -123,6 +123,7 @@ nfssvc32_nsd_out(void *argp, const struc
 {
 	struct netbsd32_nfsd_srvargs args32;
 
+	memset(&args32, 0, sizeof(args32));
 	NETBSD32PTR32(args32.nsd_nfsd, nsd->nsd_nfsd);
 	args32.nsd_uid = nsd->nsd_uid;
 	args32.nsd_haddr = nsd->nsd_haddr;

Index: src/sys/compat/netbsd32/netbsd32_ptrace.c
diff -u src/sys/compat/netbsd32/netbsd32_ptrace.c:1.4.6.1 src/sys/compat/netbsd32/netbsd32_ptrace.c:1.4.6.2
--- src/sys/compat/netbsd32/netbsd32_ptrace.c:1.4.6.1	Thu Apr 12 13:42:49 2018
+++ src/sys/compat/netbsd32/netbsd32_ptrace.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_ptrace.c,v 1.4.6.1 2018/04/12 13:42:49 martin Exp $	*/
+/*	$NetBSD: netbsd32_ptrace.c,v 1.4.6.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 2016 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_ptrace.c,v 1.4.6.1 2018/04/12 13:42:49 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_ptrace.c,v 1.4.6.2 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ptrace.h"
@@ -81,6 +81,7 @@ netbsd32_copyout_piod(const struct ptrac
 	if (len != 0 && sizeof(piod32) != len)
 		return EINVAL;
 
+	memset(&piod32, 0, sizeof(piod32));
 	piod32.piod_op = piod->piod_op;
 	NETBSD32PTR32(piod32.piod_offs, piod->piod_offs);
 	NETBSD32PTR32(piod32.piod_addr, piod->piod_addr);
@@ -112,6 +113,7 @@ netbsd32_copyout_siginfo(const struct pt
 	if (sizeof(psi32) != len)
 		return EINVAL;
 
+	memset(&psi32, 0, sizeof(psi32));
 	psi32.psi_lwpid = psi->psi_lwpid;
 	netbsd32_si_to_si32(&psi32.psi_siginfo, &psi->psi_siginfo);
 	return copyout(&psi32, addr, sizeof(psi32));

Index: src/sys/compat/netbsd32/netbsd32_signal.c
diff -u src/sys/compat/netbsd32/netbsd32_signal.c:1.43.8.1 src/sys/compat/netbsd32/netbsd32_signal.c:1.43.8.2
--- src/sys/compat/netbsd32/netbsd32_signal.c:1.43.8.1	Thu Apr 12 13:42:49 2018
+++ src/sys/compat/netbsd32/netbsd32_signal.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_signal.c,v 1.43.8.1 2018/04/12 13:42:49 martin Exp $	*/
+/*	$NetBSD: netbsd32_signal.c,v 1.43.8.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.43.8.1 2018/04/12 13:42:49 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.43.8.2 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT) 
 #include "opt_ktrace.h"
@@ -86,6 +86,7 @@ netbsd32_sigaction(struct lwp *l, const 
 		return (error);
 
 	if (SCARG_P32(uap, osa)) {
+		memset(&sa32, 0, sizeof(sa32));
 		NETBSD32PTR32(sa32.netbsd32_sa_handler, osa.sa_handler);
 		sa32.netbsd32_sa_mask = osa.sa_mask.__bits[0];
 		sa32.netbsd32_sa_flags = osa.sa_flags;
@@ -135,6 +136,7 @@ netbsd32___sigaction14(struct lwp *l, co
 	if (error)
 		return (error);
 	if (SCARG_P32(uap, osa)) {
+		memset(&sa32, 0, sizeof(sa32));
 		NETBSD32PTR32(sa32.netbsd32_sa_handler, osa.sa_handler);
 		sa32.netbsd32_sa_mask = osa.sa_mask;
 		sa32.netbsd32_sa_flags = osa.sa_flags;
@@ -175,6 +177,7 @@ netbsd32___sigaction_sigtramp(struct lwp
 	if (error)
 		return (error);
 	if (SCARG_P32(uap, osa)) {
+		memset(&sa32, 0, sizeof(sa32));
 		NETBSD32PTR32(sa32.netbsd32_sa_handler, osa.sa_handler);
 		sa32.netbsd32_sa_mask = osa.sa_mask;
 		sa32.netbsd32_sa_flags = osa.sa_flags;

Index: src/sys/compat/netbsd32/netbsd32_time.c
diff -u src/sys/compat/netbsd32/netbsd32_time.c:1.49 src/sys/compat/netbsd32/netbsd32_time.c:1.49.6.1
--- src/sys/compat/netbsd32/netbsd32_time.c:1.49	Sun Feb 26 10:26:19 2017
+++ src/sys/compat/netbsd32/netbsd32_time.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_time.c,v 1.49 2017/02/26 10:26:19 njoly Exp $	*/
+/*	$NetBSD: netbsd32_time.c,v 1.49.6.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.49 2017/02/26 10:26:19 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.49.6.1 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ntp.h"
@@ -257,6 +257,7 @@ netbsd32___gettimeofday50(struct lwp *l,
 		 * NetBSD has no kernel notion of time zone, so we just
 		 * fake up a timezone struct and return it if demanded.
 		 */
+		memset(&tzfake, 0, sizeof(tzfake));
 		tzfake.tz_minuteswest = 0;
 		tzfake.tz_dsttime = 0;
 		error = copyout(&tzfake, SCARG_P32(uap, tzp), sizeof(tzfake));
@@ -317,6 +318,7 @@ netbsd32___adjtime50(struct lwp *l, cons
 		return (error);
 
 	if (SCARG_P32(uap, olddelta)) {
+		memset(&atv, 0, sizeof(atv));
 		atv.tv_sec = time_adjtime / 1000000;
 		atv.tv_usec = time_adjtime % 1000000;
 		if (atv.tv_usec < 0) {
@@ -528,6 +530,7 @@ netbsd32___timer_settime50(struct lwp *l
 		return error;
 
 	if (ovp) {
+		memset(&its32, 0, sizeof(its32));
 		netbsd32_from_timespec(&ovp->it_interval, &its32.it_interval);
 		netbsd32_from_timespec(&ovp->it_value, &its32.it_value);
 		return copyout(&its32, SCARG_P32(uap, ovalue), sizeof(its32));
@@ -550,6 +553,7 @@ netbsd32___timer_gettime50(struct lwp *l
 	    &its)) != 0)
 		return error;
 
+	memset(&its32, 0, sizeof(its32));
 	netbsd32_from_timespec(&its.it_interval, &its32.it_interval);
 	netbsd32_from_timespec(&its.it_value, &its32.it_value);
 

Index: src/sys/compat/netbsd32/netbsd32_wait.c
diff -u src/sys/compat/netbsd32/netbsd32_wait.c:1.23 src/sys/compat/netbsd32/netbsd32_wait.c:1.23.8.1
--- src/sys/compat/netbsd32/netbsd32_wait.c:1.23	Fri Sep 23 14:09:39 2016
+++ src/sys/compat/netbsd32/netbsd32_wait.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_wait.c,v 1.23 2016/09/23 14:09:39 skrll Exp $	*/
+/*	$NetBSD: netbsd32_wait.c,v 1.23.8.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.23 2016/09/23 14:09:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.23.8.1 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -132,6 +132,7 @@ netbsd32_wait6(struct lwp *l, const stru
 	if (wrup != NULL && error == 0) {
 		struct netbsd32_wrusage wru32;
 
+		memset(&wru32, 0, sizeof(wru32));
 		netbsd32_from_rusage(&wrup->wru_self, &wru32.wru_self);
 		netbsd32_from_rusage(&wrup->wru_children, &wru32.wru_children);
 		error = copyout(&wru32, SCARG_P32(uap, wru), sizeof(wru32));

Index: src/sys/compat/ossaudio/ossaudio.c
diff -u src/sys/compat/ossaudio/ossaudio.c:1.70.6.3 src/sys/compat/ossaudio/ossaudio.c:1.70.6.4
--- src/sys/compat/ossaudio/ossaudio.c:1.70.6.3	Wed Apr 22 18:15:12 2020
+++ src/sys/compat/ossaudio/ossaudio.c	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: ossaudio.c,v 1.70.6.3 2020/04/22 18:15:12 martin Exp $	*/
+/*	$NetBSD: ossaudio.c,v 1.70.6.4 2023/06/21 21:04:02 martin Exp $	*/
 
 /*-
  * Copyright (c) 1997, 2008 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ossaudio.c,v 1.70.6.3 2020/04/22 18:15:12 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ossaudio.c,v 1.70.6.4 2023/06/21 21:04:02 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -618,6 +618,7 @@ oss_ioctl_audio(struct lwp *l, const str
 			goto out;
 		}
 		setblocksize(fp, &tmpinfo);
+		memset(&bufinfo, 0, sizeof(bufinfo));
 		bufinfo.fragsize = tmpinfo.blocksize;
 		bufinfo.fragments = tmpinfo.hiwat -
 		    (tmpinfo.play.seek + tmpinfo.blocksize - 1) /
@@ -640,6 +641,7 @@ oss_ioctl_audio(struct lwp *l, const str
 			goto out;
 		}
 		setblocksize(fp, &tmpinfo);
+		memset(&bufinfo, 0, sizeof(bufinfo));
 		bufinfo.fragsize = tmpinfo.blocksize;
 		bufinfo.fragments = tmpinfo.record.seek / tmpinfo.blocksize;
 		bufinfo.fragstotal = tmpinfo.hiwat;
@@ -748,6 +750,7 @@ oss_ioctl_audio(struct lwp *l, const str
 			     __func__, error));
 			goto out;
 		}
+		memset(&cntinfo, 0, sizeof(cntinfo));
 		cntinfo.bytes = tmpoffs.samples;
 		cntinfo.blocks = tmpoffs.deltablks;
 		cntinfo.ptr = tmpoffs.offset;
@@ -765,6 +768,7 @@ oss_ioctl_audio(struct lwp *l, const str
 			     __func__, error));
 			goto out;
 		}
+		memset(&cntinfo, 0, sizeof(cntinfo));
 		cntinfo.bytes = tmpoffs.samples;
 		cntinfo.blocks = tmpoffs.deltablks;
 		cntinfo.ptr = tmpoffs.offset;

Index: src/sys/compat/sunos/sunos_ioctl.c
diff -u src/sys/compat/sunos/sunos_ioctl.c:1.68 src/sys/compat/sunos/sunos_ioctl.c:1.68.8.1
--- src/sys/compat/sunos/sunos_ioctl.c:1.68	Sat Oct  8 15:48:07 2016
+++ src/sys/compat/sunos/sunos_ioctl.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos_ioctl.c,v 1.68 2016/10/08 15:48:07 maxv Exp $	*/
+/*	$NetBSD: sunos_ioctl.c,v 1.68.8.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1993 Markus Wild.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.68 2016/10/08 15:48:07 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.68.8.1 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -127,6 +127,8 @@ stios2btios(struct sunos_termios *st, st
 {
 	u_long l, r;
 
+	memset(bt, 0, sizeof(*bt));
+
 	l = st->c_iflag;
 	r = 	((l & 0x00000001) ? IGNBRK	: 0);
 	r |=	((l & 0x00000002) ? BRKINT	: 0);
@@ -248,6 +250,8 @@ btios2stios(struct termios *bt, struct s
 	u_long l, r;
 	int s;
 
+	memset(st, 0, sizeof(*st));
+
 	l = bt->c_iflag;
 	r = 	((l &  IGNBRK) ? 0x00000001	: 0);
 	r |=	((l &  BRKINT) ? 0x00000002	: 0);
@@ -372,6 +376,8 @@ btios2stios(struct termios *bt, struct s
 static void
 stios2stio(struct sunos_termios *ts, struct sunos_termio *t)
 {
+
+	memset(t, 0, sizeof(*t));
 	t->c_iflag = ts->c_iflag;
 	t->c_oflag = ts->c_oflag;
 	t->c_cflag = ts->c_cflag;
@@ -383,6 +389,8 @@ stios2stio(struct sunos_termios *ts, str
 static void
 stio2stios(struct sunos_termio *t, struct sunos_termios *ts)
 {
+
+	memset(ts, 0, sizeof(*ts));
 	ts->c_iflag = t->c_iflag;
 	ts->c_oflag = t->c_oflag;
 	ts->c_cflag = t->c_cflag;
@@ -484,6 +492,7 @@ sunos_sys_ioctl(struct lwp *l, const str
 		if ((error = (*ctl)(fp, TIOCGWINSZ, &ws)) != 0)
 			break;
 
+		memset(&ss, 0, sizeof(ss));
 		ss.ts_row = ws.ws_row;
 		ss.ts_col = ws.ws_col;
 
@@ -724,6 +733,7 @@ sunos_sys_ioctl(struct lwp *l, const str
 		if (error)
 			break;
 
+		memset(&sunos_aui, 0, sizeof(sunos_aui));
 		sunos_aui.play = *(struct sunos_audio_prinfo *)&aui.play;
 		sunos_aui.record = *(struct sunos_audio_prinfo *)&aui.record;
 
@@ -934,6 +944,9 @@ static void sunos_to_bsd_flock(struct su
 static void
 bsd_to_sunos_flock(struct flock *iflp, struct sunos_flock *oflp)
 {
+
+	memset(oflp, 0, sizeof(*oflp));
+
 	switch (iflp->l_type) {
 	case F_RDLCK:
 		oflp->l_type = SUNOS_F_RDLCK;
@@ -960,6 +973,9 @@ bsd_to_sunos_flock(struct flock *iflp, s
 static void
 sunos_to_bsd_flock(struct sunos_flock *iflp, struct flock *oflp)
 {
+
+	memset(oflp, 0, sizeof(*oflp));
+
 	switch (iflp->l_type) {
 	case SUNOS_F_RDLCK:
 		oflp->l_type = F_RDLCK;

Index: src/sys/compat/sunos/sunos_misc.c
diff -u src/sys/compat/sunos/sunos_misc.c:1.170.10.1 src/sys/compat/sunos/sunos_misc.c:1.170.10.2
--- src/sys/compat/sunos/sunos_misc.c:1.170.10.1	Wed Aug  9 05:12:18 2017
+++ src/sys/compat/sunos/sunos_misc.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos_misc.c,v 1.170.10.1 2017/08/09 05:12:18 snj Exp $	*/
+/*	$NetBSD: sunos_misc.c,v 1.170.10.2 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_misc.c,v 1.170.10.1 2017/08/09 05:12:18 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos_misc.c,v 1.170.10.2 2023/06/21 21:04:01 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -305,6 +305,7 @@ void	sunos_to_native_sigset(const int, s
 inline void
 native_to_sunos_sigset(const sigset_t *ss, int *mask)
 {
+
 	*mask = ss->__bits[0];
 }
 
@@ -312,6 +313,7 @@ inline void
 sunos_to_native_sigset(const int mask, sigset_t *ss)
 {
 
+	memset(ss, 0, sizeof(*ss));
 	ss->__bits[0] = mask;
 	ss->__bits[1] = 0;
 	ss->__bits[2] = 0;
@@ -431,6 +433,7 @@ again:
 				off += reclen;
 			continue;
 		}
+		memset(&idb, 0, sizeof(idb));
 		sunos_reclen = SUNOS_RECLEN(&idb, bdp->d_namlen);
 		if (reclen > len || resid < sunos_reclen) {
 			/* entry too big for buffer, so just stop */

Index: src/sys/compat/sunos32/sunos32_ioctl.c
diff -u src/sys/compat/sunos32/sunos32_ioctl.c:1.34 src/sys/compat/sunos32/sunos32_ioctl.c:1.34.10.1
--- src/sys/compat/sunos32/sunos32_ioctl.c:1.34	Fri Dec 11 08:10:43 2015
+++ src/sys/compat/sunos32/sunos32_ioctl.c	Wed Jun 21 21:04:03 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos32_ioctl.c,v 1.34 2015/12/11 08:10:43 mlelstv Exp $	*/
+/*	$NetBSD: sunos32_ioctl.c,v 1.34.10.1 2023/06/21 21:04:03 martin Exp $	*/
 /* from: NetBSD: sunos_ioctl.c,v 1.35 2001/02/03 22:20:02 mrg Exp 	*/
 
 /*
@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.34 2015/12/11 08:10:43 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.34.10.1 2023/06/21 21:04:03 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd32.h"
@@ -163,6 +163,8 @@ stios2btios(struct sunos_termios *st, st
 {
 	netbsd32_u_long l, r;
 
+	memset(bt, 0, sizeof(*bt));
+
 	l = st->c_iflag;
 	r = 	((l & 0x00000001) ? IGNBRK	: 0);
 	r |=	((l & 0x00000002) ? BRKINT	: 0);
@@ -284,6 +286,8 @@ btios2stios(struct termios *bt, struct s
 	netbsd32_u_long l, r;
 	int s;
 
+	memset(st, 0, sizeof(*st));
+
 	l = bt->c_iflag;
 	r = 	((l &  IGNBRK) ? 0x00000001	: 0);
 	r |=	((l &  BRKINT) ? 0x00000002	: 0);
@@ -408,6 +412,8 @@ btios2stios(struct termios *bt, struct s
 static void
 stios2stio(struct sunos_termios *ts, struct sunos_termio *t)
 {
+
+	memset(t, 0, sizeof(*t));
 	t->c_iflag = ts->c_iflag;
 	t->c_oflag = ts->c_oflag;
 	t->c_cflag = ts->c_cflag;
@@ -419,6 +425,8 @@ stios2stio(struct sunos_termios *ts, str
 static void
 stio2stios(struct sunos_termio *t, struct sunos_termios *ts)
 {
+
+	memset(ts, 0, sizeof(*ts));
 	ts->c_iflag = t->c_iflag;
 	ts->c_oflag = t->c_oflag;
 	ts->c_cflag = t->c_cflag;
@@ -528,6 +536,7 @@ sunos32_sys_ioctl(struct lwp *l, const s
 		if ((error = sunos32_do_ioctl(SCARG(&bsd_ua, fd), TIOCGWINSZ, &ws, l)) != 0)
 			return (error);
 
+		memset(&ss, 0, sizeof(ss));
 		ss.ts_row = ws.ws_row;
 		ss.ts_col = ws.ws_col;
 
@@ -756,6 +765,8 @@ sunos32_sys_ioctl(struct lwp *l, const s
 		if (error)
 			return error;
 
+		memset(&sunos_aui, 0, sizeof(sunos_aui));
+
 		sunos_aui.play = *(struct sunos_audio_prinfo *)&aui.play;
 		sunos_aui.record = *(struct sunos_audio_prinfo *)&aui.record;
 
@@ -950,6 +961,9 @@ static void sunos_to_bsd_flock(struct su
 static void
 bsd_to_sunos_flock(struct flock *iflp, struct sunos_flock *oflp)
 {
+
+	memset(oflp, 0, sizeof(*oflp));
+
 	switch (iflp->l_type) {
 	case F_RDLCK:
 		oflp->l_type = SUNOS_F_RDLCK;
@@ -976,6 +990,9 @@ bsd_to_sunos_flock(struct flock *iflp, s
 static void
 sunos_to_bsd_flock(struct sunos_flock *iflp, struct flock *oflp)
 {
+
+	memset(oflp, 0, sizeof(*oflp));
+
 	switch (iflp->l_type) {
 	case SUNOS_F_RDLCK:
 		oflp->l_type = F_RDLCK;

Index: src/sys/compat/sunos32/sunos32_misc.c
diff -u src/sys/compat/sunos32/sunos32_misc.c:1.77.10.1 src/sys/compat/sunos32/sunos32_misc.c:1.77.10.2
--- src/sys/compat/sunos32/sunos32_misc.c:1.77.10.1	Wed Aug  9 05:12:18 2017
+++ src/sys/compat/sunos32/sunos32_misc.c	Wed Jun 21 21:04:03 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos32_misc.c,v 1.77.10.1 2017/08/09 05:12:18 snj Exp $	*/
+/*	$NetBSD: sunos32_misc.c,v 1.77.10.2 2023/06/21 21:04:03 martin Exp $	*/
 /* from :NetBSD: sunos_misc.c,v 1.107 2000/12/01 19:25:10 jdolecek Exp	*/
 
 /*
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos32_misc.c,v 1.77.10.1 2017/08/09 05:12:18 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos32_misc.c,v 1.77.10.2 2023/06/21 21:04:03 martin Exp $");
 
 #define COMPAT_SUNOS 1
 
@@ -161,6 +161,7 @@ sunos32_sigvec_from_sigaction(
 {
 /*XXX*/ extern void compat_43_sigset_to_sigmask(const sigset_t *, int *);
 
+	memset(sv, 0, sizeof(*sv));
 	NETBSD32PTR32(sv->sv_handler, sa->sa_handler);
 	compat_43_sigset_to_sigmask(&sa->sa_mask, &sv->sv_mask);
 	sv->sv_flags = sa->sa_flags ^ SA_RESTART;
@@ -541,6 +542,7 @@ void	sunos_to_native_sigset(const int, s
 inline void
 native_to_sunos_sigset(const sigset_t *ss, int *mask)
 {
+
 	*mask = ss->__bits[0];
 }
 
@@ -548,6 +550,7 @@ inline void
 sunos_to_native_sigset(const int mask, sigset_t *ss)
 {
 
+	memset(ss, 0, sizeof(*ss));
 	ss->__bits[0] = mask;
 	ss->__bits[1] = 0;
 	ss->__bits[2] = 0;
@@ -676,6 +679,7 @@ again:
 				off += reclen;
 			continue;
 		}
+		memset(&idb, 0, sizeof(idb));
 		sunos_reclen = SUNOS32_RECLEN(&idb, bdp->d_namlen);
 		if (reclen > len || resid < sunos_reclen) {
 			/* entry too big for buffer, so just stop */

Index: src/sys/compat/sys/time_types.h
diff -u src/sys/compat/sys/time_types.h:1.1.58.1 src/sys/compat/sys/time_types.h:1.1.58.2
--- src/sys/compat/sys/time_types.h:1.1.58.1	Thu Jan  3 09:00:01 2019
+++ src/sys/compat/sys/time_types.h	Wed Jun 21 21:04:02 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: time_types.h,v 1.1.58.1 2019/01/03 09:00:01 martin Exp $	*/
+/*	$NetBSD: time_types.h,v 1.1.58.2 2023/06/21 21:04:02 martin Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -72,58 +72,68 @@ struct	itimerspec50 {
 	struct	timespec50 it_value;
 };
 
-static __inline void timeval50_to_timeval(const struct timeval50 *ts50,
-    struct timeval *ts)
+static __inline void
+timeval50_to_timeval(const struct timeval50 *ts50, struct timeval *ts)
 {
+	memset(ts, 0, sizeof(*ts));
 	ts->tv_sec = ts50->tv_sec;
 	ts->tv_usec = (suseconds_t)ts50->tv_usec;
 }
 
-static __inline void timeval_to_timeval50(const struct timeval *ts,
-    struct timeval50 *ts50)
+static __inline void
+timeval_to_timeval50(const struct timeval *ts, struct timeval50 *ts50)
 {
+	memset(ts50, 0, sizeof(*ts50));
 	ts50->tv_sec = (long)ts->tv_sec;
 	ts50->tv_usec = ts->tv_usec;
 }
 
-static __inline void timespec50_to_timespec(const struct timespec50 *ts50,
-    struct timespec *ts)
+static __inline void
+timespec50_to_timespec(const struct timespec50 *ts50, struct timespec *ts)
 {
+	memset(ts, 0, sizeof(*ts));
 	ts->tv_sec = ts50->tv_sec;
 	ts->tv_nsec = ts50->tv_nsec;
 }
 
-static __inline void timespec_to_timespec50(const struct timespec *ts,
-    struct timespec50 *ts50)
+static __inline void
+timespec_to_timespec50(const struct timespec *ts, struct timespec50 *ts50)
 {
+	memset(ts50, 0, sizeof(*ts50));
 	ts50->tv_sec = (int32_t)ts->tv_sec;
 	ts50->tv_nsec = ts->tv_nsec;
 }
 
-static __inline void itimerval50_to_itimerval(const struct itimerval50 *ts50,
-    struct itimerval *ts)
+static __inline void
+itimerval50_to_itimerval(const struct itimerval50 *ts50, struct itimerval *ts)
 {
+	memset(ts, 0, sizeof(*ts));
 	timeval50_to_timeval(&ts50->it_interval, &ts->it_interval);
 	timeval50_to_timeval(&ts50->it_value, &ts->it_value);
 }
 
-static __inline void itimerval_to_itimerval50(const struct itimerval *ts,
-    struct itimerval50 *ts50)
+static __inline void
+itimerval_to_itimerval50(const struct itimerval *ts, struct itimerval50 *ts50)
 {
+	memset(ts50, 0, sizeof(*ts50));
 	timeval_to_timeval50(&ts->it_interval, &ts50->it_interval);
 	timeval_to_timeval50(&ts->it_value, &ts50->it_value);
 }
 
-static __inline void itimerspec50_to_itimerspec(const struct itimerspec50 *ts50,
+static __inline void
+itimerspec50_to_itimerspec(const struct itimerspec50 *ts50,
     struct itimerspec *ts)
 {
+	memset(ts, 0, sizeof(*ts));
 	timespec50_to_timespec(&ts50->it_interval, &ts->it_interval);
 	timespec50_to_timespec(&ts50->it_value, &ts->it_value);
 }
 
-static __inline void itimerspec_to_itimerspec50(const struct itimerspec *ts,
+static __inline void
+itimerspec_to_itimerspec50(const struct itimerspec *ts,
     struct itimerspec50 *ts50)
 {
+	memset(ts50, 0, sizeof(*ts50));
 	timespec_to_timespec50(&ts->it_interval, &ts50->it_interval);
 	timespec_to_timespec50(&ts->it_value, &ts50->it_value);
 }

Index: src/sys/compat/ultrix/ultrix_ioctl.c
diff -u src/sys/compat/ultrix/ultrix_ioctl.c:1.37 src/sys/compat/ultrix/ultrix_ioctl.c:1.37.8.1
--- src/sys/compat/ultrix/ultrix_ioctl.c:1.37	Sat Oct  8 15:48:07 2016
+++ src/sys/compat/ultrix/ultrix_ioctl.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: ultrix_ioctl.c,v 1.37 2016/10/08 15:48:07 maxv Exp $ */
+/*	$NetBSD: ultrix_ioctl.c,v 1.37.8.1 2023/06/21 21:04:01 martin Exp $ */
 /*	from : NetBSD: sunos_ioctl.c,v 1.21 1995/10/07 06:27:31 mycroft Exp */
 
 /*
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ultrix_ioctl.c,v 1.37 2016/10/08 15:48:07 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ultrix_ioctl.c,v 1.37.8.1 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_ultrix.h"
@@ -145,6 +145,8 @@ stios2btios(struct emul_termios *st, str
 {
 	uint32_t l, r;
 
+	memset(bt, 0, sizeof(*bt));
+
 	l = st->c_iflag;
 	r = 	((l & 0x00000001) ? IGNBRK	: 0);
 	r |=	((l & 0x00000002) ? BRKINT	: 0);
@@ -276,6 +278,8 @@ btios2stios(struct termios *bt, struct e
 	uint32_t l, r;
 	int speed;
 
+	memset(st, 0, sizeof(*st));
+
 	l = bt->c_iflag;
 	r = 	((l &  IGNBRK) ? 0x00000001	: 0);
 	r |=	((l &  BRKINT) ? 0x00000002	: 0);
@@ -419,6 +423,8 @@ btios2stios(struct termios *bt, struct e
 static void
 stios2stio(struct emul_termios *ts, struct emul_termio *t)
 {
+
+	memset(t, 0, sizeof(*t));
 	t->c_iflag = ts->c_iflag;
 	t->c_oflag = ts->c_oflag;
 	t->c_cflag = ts->c_cflag;
@@ -433,6 +439,8 @@ stios2stio(struct emul_termios *ts, stru
 static void
 stio2stios(struct emul_termio *t, struct emul_termios *ts)
 {
+
+	memset(ts, 0, sizeof(*t));
 	ts->c_iflag = t->c_iflag;
 	ts->c_oflag = t->c_oflag;
 	ts->c_cflag = t->c_cflag;
@@ -528,6 +536,7 @@ ultrix_sys_ioctl(struct lwp *l, const st
 		if ((error = ultrix_do_ioctl(SCARG(&ap, fd), TIOCGWINSZ, &ws, l)) != 0)
 			return error;
 
+		memset(&ss, 0, sizeof(ss));
 		ss.ts_row = ws.ws_row;
 		ss.ts_col = ws.ws_col;
 

Index: src/sys/compat/ultrix/ultrix_misc.c
diff -u src/sys/compat/ultrix/ultrix_misc.c:1.122 src/sys/compat/ultrix/ultrix_misc.c:1.122.32.1
--- src/sys/compat/ultrix/ultrix_misc.c:1.122	Sun Feb 19 21:06:45 2012
+++ src/sys/compat/ultrix/ultrix_misc.c	Wed Jun 21 21:04:01 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: ultrix_misc.c,v 1.122 2012/02/19 21:06:45 rmind Exp $	*/
+/*	$NetBSD: ultrix_misc.c,v 1.122.32.1 2023/06/21 21:04:01 martin Exp $	*/
 
 /*
  * Copyright (c) 1995, 1997 Jonathan Stone (hereinafter referred to as the author)
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.122 2012/02/19 21:06:45 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.122.32.1 2023/06/21 21:04:01 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_sysv.h"
@@ -628,6 +628,7 @@ ultrix_sys_sigvec(struct lwp *l, const s
 	if (error)
 		return error;
 	if (SCARG(uap, osv)) {
+		memset(&osv, 0, sizeof(osv));
 		osv.sv_handler = osa.sa_handler;
 		osv.sv_flags = osa.sa_flags ^ SA_RESTART;
 		osv.sv_flags &= (ULTRIX_SV_ONSTACK | ULTRIX_SV_INTERRUPT);
@@ -687,6 +688,8 @@ static int
 ultrix_to_bsd_flock(struct ultrix_flock *ufl, struct flock *fl)
 {
 
+	memset(fl, 0, sizeof(*fl));
+
 	fl->l_start = ufl->l_start;
 	fl->l_len = ufl->l_len;
 	fl->l_pid = ufl->l_pid;
@@ -713,6 +716,8 @@ static void
 bsd_to_ultrix_flock(struct flock *fl, struct ultrix_flock *ufl)
 {
 
+	memset(ufl, 0, sizeof(*ufl));
+
 	ufl->l_start = fl->l_start;
 	ufl->l_len = fl->l_len;
 	ufl->l_pid = fl->l_pid;

Reply via email to