Module Name:    src
Committed By:   riastradh
Date:           Tue Sep  7 11:43:05 UTC 2021

Modified Files:
        src/sys/compat/common: ieee80211_20.c if_media_80.c 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: freebsd_machdep.c freebsd_misc.c
            freebsd_sched.c
        src/sys/compat/linux/arch/alpha: linux_machdep.c linux_osf1.c
        src/sys/compat/linux/arch/amd64: linux_machdep.c
        src/sys/compat/linux/arch/arm: linux_machdep.c linux_ptrace.c
        src/sys/compat/linux/arch/i386: linux_machdep.c linux_ptrace.c
        src/sys/compat/linux/arch/m68k: linux_machdep.c
        src/sys/compat/linux/arch/mips: linux_machdep.c
        src/sys/compat/linux/arch/powerpc: linux_exec_powerpc.c linux_machdep.c
            linux_ptrace.c
        src/sys/compat/linux/common: 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: linux32_machdep.c
        src/sys/compat/linux32/common: linux32_exec_elf32.c linux32_resource.c
            linux32_signal.c linux32_time.c
        src/sys/compat/netbsd32: 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: ossaudio.c
        src/sys/compat/sunos: sunos_ioctl.c sunos_misc.c
        src/sys/compat/sunos32: sunos32_ioctl.c sunos32_misc.c
        src/sys/compat/sys: statvfs.h time_types.h
        src/sys/compat/ultrix: ultrix_ioctl.c ultrix_misc.c

Log Message:
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.6 -r1.7 src/sys/compat/common/ieee80211_20.c
cvs rdiff -u -r1.3 -r1.4 src/sys/compat/common/if_media_80.c
cvs rdiff -u -r1.21 -r1.22 src/sys/compat/common/kern_info_09.c \
    src/sys/compat/common/kern_sig_13.c
cvs rdiff -u -r1.39 -r1.40 src/sys/compat/common/kern_info_43.c
cvs rdiff -u -r1.22 -r1.23 src/sys/compat/common/kern_resource_43.c
cvs rdiff -u -r1.36 -r1.37 src/sys/compat/common/kern_sig_43.c \
    src/sys/compat/common/kern_time_50.c
cvs rdiff -u -r1.37 -r1.38 src/sys/compat/common/vfs_syscalls_12.c
cvs rdiff -u -r1.42 -r1.43 src/sys/compat/common/vfs_syscalls_30.c
cvs rdiff -u -r1.67 -r1.68 src/sys/compat/common/vfs_syscalls_43.c
cvs rdiff -u -r1.4 -r1.5 src/sys/compat/freebsd/freebsd_machdep.c
cvs rdiff -u -r1.33 -r1.34 src/sys/compat/freebsd/freebsd_misc.c
cvs rdiff -u -r1.22 -r1.23 src/sys/compat/freebsd/freebsd_sched.c
cvs rdiff -u -r1.51 -r1.52 src/sys/compat/linux/arch/alpha/linux_machdep.c
cvs rdiff -u -r1.4 -r1.5 src/sys/compat/linux/arch/alpha/linux_osf1.c
cvs rdiff -u -r1.59 -r1.60 src/sys/compat/linux/arch/amd64/linux_machdep.c
cvs rdiff -u -r1.33 -r1.34 src/sys/compat/linux/arch/arm/linux_machdep.c
cvs rdiff -u -r1.22 -r1.23 src/sys/compat/linux/arch/arm/linux_ptrace.c
cvs rdiff -u -r1.167 -r1.168 src/sys/compat/linux/arch/i386/linux_machdep.c
cvs rdiff -u -r1.34 -r1.35 src/sys/compat/linux/arch/i386/linux_ptrace.c
cvs rdiff -u -r1.42 -r1.43 src/sys/compat/linux/arch/m68k/linux_machdep.c
cvs rdiff -u -r1.43 -r1.44 src/sys/compat/linux/arch/mips/linux_machdep.c
cvs rdiff -u -r1.24 -r1.25 \
    src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c
cvs rdiff -u -r1.50 -r1.51 src/sys/compat/linux/arch/powerpc/linux_machdep.c
cvs rdiff -u -r1.32 -r1.33 src/sys/compat/linux/arch/powerpc/linux_ptrace.c
cvs rdiff -u -r1.27 -r1.28 src/sys/compat/linux/common/linux_cdrom.c
cvs rdiff -u -r1.13 -r1.14 src/sys/compat/linux/common/linux_fdio.c
cvs rdiff -u -r1.118 -r1.119 src/sys/compat/linux/common/linux_file.c
cvs rdiff -u -r1.18 -r1.19 src/sys/compat/linux/common/linux_hdio.c
cvs rdiff -u -r1.251 -r1.252 src/sys/compat/linux/common/linux_misc.c
cvs rdiff -u -r1.7 -r1.8 src/sys/compat/linux/common/linux_mtio.c
cvs rdiff -u -r1.66 -r1.67 src/sys/compat/linux/common/linux_oldolduname.c \
    src/sys/compat/linux/common/linux_olduname.c
cvs rdiff -u -r1.78 -r1.79 src/sys/compat/linux/common/linux_sched.c
cvs rdiff -u -r1.83 -r1.84 src/sys/compat/linux/common/linux_signal.c
cvs rdiff -u -r1.152 -r1.153 src/sys/compat/linux/common/linux_socket.c
cvs rdiff -u -r1.39 -r1.40 src/sys/compat/linux/common/linux_time.c
cvs rdiff -u -r1.45 -r1.46 \
    src/sys/compat/linux32/arch/amd64/linux32_machdep.c
cvs rdiff -u -r1.19 -r1.20 src/sys/compat/linux32/common/linux32_exec_elf32.c
cvs rdiff -u -r1.11 -r1.12 src/sys/compat/linux32/common/linux32_resource.c
cvs rdiff -u -r1.20 -r1.21 src/sys/compat/linux32/common/linux32_signal.c
cvs rdiff -u -r1.37 -r1.38 src/sys/compat/linux32/common/linux32_time.c
cvs rdiff -u -r1.35 -r1.36 src/sys/compat/netbsd32/netbsd32_compat_12.c
cvs rdiff -u -r1.41 -r1.42 src/sys/compat/netbsd32/netbsd32_compat_20.c
cvs rdiff -u -r1.61 -r1.62 src/sys/compat/netbsd32/netbsd32_compat_43.c
cvs rdiff -u -r1.51 -r1.52 src/sys/compat/netbsd32/netbsd32_compat_50.c \
    src/sys/compat/netbsd32/netbsd32_signal.c
cvs rdiff -u -r1.45 -r1.46 src/sys/compat/netbsd32/netbsd32_conv.h
cvs rdiff -u -r1.7 -r1.8 src/sys/compat/netbsd32/netbsd32_nfssvc.c
cvs rdiff -u -r1.8 -r1.9 src/sys/compat/netbsd32/netbsd32_ptrace.c
cvs rdiff -u -r1.55 -r1.56 src/sys/compat/netbsd32/netbsd32_time.c
cvs rdiff -u -r1.24 -r1.25 src/sys/compat/netbsd32/netbsd32_wait.c
cvs rdiff -u -r1.83 -r1.84 src/sys/compat/ossaudio/ossaudio.c
cvs rdiff -u -r1.70 -r1.71 src/sys/compat/sunos/sunos_ioctl.c
cvs rdiff -u -r1.176 -r1.177 src/sys/compat/sunos/sunos_misc.c
cvs rdiff -u -r1.35 -r1.36 src/sys/compat/sunos32/sunos32_ioctl.c
cvs rdiff -u -r1.84 -r1.85 src/sys/compat/sunos32/sunos32_misc.c
cvs rdiff -u -r1.3 -r1.4 src/sys/compat/sys/statvfs.h
cvs rdiff -u -r1.5 -r1.6 src/sys/compat/sys/time_types.h
cvs rdiff -u -r1.38 -r1.39 src/sys/compat/ultrix/ultrix_ioctl.c
cvs rdiff -u -r1.125 -r1.126 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/ieee80211_20.c
diff -u src/sys/compat/common/ieee80211_20.c:1.6 src/sys/compat/common/ieee80211_20.c:1.7
--- src/sys/compat/common/ieee80211_20.c:1.6	Thu Dec 12 02:15:42 2019
+++ src/sys/compat/common/ieee80211_20.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ieee80211_20.c,v 1.6 2019/12/12 02:15:42 pgoyette Exp $	*/
+/*	$NetBSD: ieee80211_20.c,v 1.7 2021/09/07 11:43:02 riastradh Exp $	*/
 /*-
  * Copyright (c) 2001 Atsushi Onoe
  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -36,7 +36,7 @@
 __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.35 2005/08/30 14:27:47 avatar Exp $");
 #endif
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: ieee80211_20.c,v 1.6 2019/12/12 02:15:42 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ieee80211_20.c,v 1.7 2021/09/07 11:43:02 riastradh Exp $");
 #endif
 
 /*
@@ -76,6 +76,9 @@ static void
 ieee80211_get_ostats(struct ieee80211_ostats *ostats,
     struct ieee80211_stats *stats)
 {
+
+	memset(ostats, 0, sizeof(*ostats));
+
 #define	COPYSTATS1(__ostats, __nstats, __dstmemb, __srcmemb, __lastmemb)\
 	(void)memcpy(&(__ostats)->__dstmemb, &(__nstats)->__srcmemb,	\
 	    offsetof(struct ieee80211_stats, __lastmemb) -		\

Index: src/sys/compat/common/if_media_80.c
diff -u src/sys/compat/common/if_media_80.c:1.3 src/sys/compat/common/if_media_80.c:1.4
--- src/sys/compat/common/if_media_80.c:1.3	Thu Dec 12 02:15:42 2019
+++ src/sys/compat/common/if_media_80.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_media_80.c,v 1.3 2019/12/12 02:15:42 pgoyette Exp $	*/
+/*	$NetBSD: if_media_80.c,v 1.4 2021/09/07 11:43:02 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -141,7 +141,8 @@ compat_ifmediareq_post(struct ifreq *ifr
 		 * there is no problem to trust ifm_count.
 		 */
 		minwords = ifmr->ifm_count;
-		kptr = malloc(minwords * sizeof(*kptr), M_TEMP, M_WAITOK);
+		kptr = malloc(minwords * sizeof(*kptr), M_TEMP,
+		    M_WAITOK|M_ZERO);
 		if (kptr == NULL)
 			return ENOMEM;
 

Index: src/sys/compat/common/kern_info_09.c
diff -u src/sys/compat/common/kern_info_09.c:1.21 src/sys/compat/common/kern_info_09.c:1.22
--- src/sys/compat/common/kern_info_09.c:1.21	Sun Jan 27 02:08:39 2019
+++ src/sys/compat/common/kern_info_09.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_info_09.c,v 1.21 2019/01/27 02:08:39 pgoyette Exp $	*/
+/*	$NetBSD: kern_info_09.c,v 1.22 2021/09/07 11:43:02 riastradh 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.21 2019/01/27 02:08:39 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_info_09.c,v 1.22 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -120,6 +120,7 @@ compat_09_sys_uname(struct lwp *l,
 	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_sig_13.c
diff -u src/sys/compat/common/kern_sig_13.c:1.21 src/sys/compat/common/kern_sig_13.c:1.22
--- src/sys/compat/common/kern_sig_13.c:1.21	Sun Jan 27 02:08:39 2019
+++ src/sys/compat/common/kern_sig_13.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sig_13.c,v 1.21 2019/01/27 02:08:39 pgoyette Exp $	*/
+/*	$NetBSD: kern_sig_13.c,v 1.22 2021/09/07 11:43:02 riastradh 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.21 2019/01/27 02:08:39 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig_13.c,v 1.22 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -73,6 +73,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;
@@ -90,6 +91,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;
@@ -99,6 +101,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_info_43.c
diff -u src/sys/compat/common/kern_info_43.c:1.39 src/sys/compat/common/kern_info_43.c:1.40
--- src/sys/compat/common/kern_info_43.c:1.39	Thu Jan 30 14:07:40 2020
+++ src/sys/compat/common/kern_info_43.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_info_43.c,v 1.39 2020/01/30 14:07:40 christos Exp $	*/
+/*	$NetBSD: kern_info_43.c,v 1.40 2021/09/07 11:43:02 riastradh 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.39 2020/01/30 14:07:40 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_info_43.c,v 1.40 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -263,6 +263,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.22 src/sys/compat/common/kern_resource_43.c:1.23
--- src/sys/compat/common/kern_resource_43.c:1.22	Sun Jan 27 02:08:39 2019
+++ src/sys/compat/common/kern_resource_43.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_resource_43.c,v 1.22 2019/01/27 02:08:39 pgoyette Exp $	*/
+/*	$NetBSD: kern_resource_43.c,v 1.23 2021/09/07 11:43:02 riastradh 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.22 2019/01/27 02:08:39 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_resource_43.c,v 1.23 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -77,6 +77,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_43.c
diff -u src/sys/compat/common/kern_sig_43.c:1.36 src/sys/compat/common/kern_sig_43.c:1.37
--- src/sys/compat/common/kern_sig_43.c:1.36	Wed Jan  1 14:52:38 2020
+++ src/sys/compat/common/kern_sig_43.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sig_43.c,v 1.36 2020/01/01 14:52:38 maxv Exp $	*/
+/*	$NetBSD: kern_sig_43.c,v 1.37 2021/09/07 11:43:02 riastradh 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.36 2020/01/01 14:52:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig_43.c,v 1.37 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -86,6 +86,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;
@@ -102,6 +103,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;
@@ -110,6 +113,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;
@@ -118,6 +123,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.36 src/sys/compat/common/kern_time_50.c:1.37
--- src/sys/compat/common/kern_time_50.c:1.36	Sat Apr  3 12:57:21 2021
+++ src/sys/compat/common/kern_time_50.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_time_50.c,v 1.36 2021/04/03 12:57:21 simonb Exp $	*/
+/*	$NetBSD: kern_time_50.c,v 1.37 2021/09/07 11:43:02 riastradh 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.36 2021/04/03 12:57:21 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.37 2021/09/07 11:43:02 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -226,6 +226,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));
@@ -458,6 +459,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.37 src/sys/compat/common/vfs_syscalls_12.c:1.38
--- src/sys/compat/common/vfs_syscalls_12.c:1.37	Sun Jan 27 02:08:39 2019
+++ src/sys/compat/common/vfs_syscalls_12.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_12.c,v 1.37 2019/01/27 02:08:39 pgoyette Exp $	*/
+/*	$NetBSD: vfs_syscalls_12.c,v 1.38 2021/09/07 11:43:02 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_12.c,v 1.37 2019/01/27 02:08:39 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_12.c,v 1.38 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -82,6 +82,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;
@@ -201,6 +202,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.42 src/sys/compat/common/vfs_syscalls_30.c:1.43
--- src/sys/compat/common/vfs_syscalls_30.c:1.42	Sun Aug 15 07:57:46 2021
+++ src/sys/compat/common/vfs_syscalls_30.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_30.c,v 1.42 2021/08/15 07:57:46 christos Exp $	*/
+/*	$NetBSD: vfs_syscalls_30.c,v 1.43 2021/09/07 11:43:02 riastradh 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.42 2021/08/15 07:57:46 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_30.c,v 1.43 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -277,6 +277,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
@@ -367,6 +368,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.67 src/sys/compat/common/vfs_syscalls_43.c:1.68
--- src/sys/compat/common/vfs_syscalls_43.c:1.67	Sun Aug 15 07:57:46 2021
+++ src/sys/compat/common/vfs_syscalls_43.c	Tue Sep  7 11:43:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_43.c,v 1.67 2021/08/15 07:57:46 christos Exp $	*/
+/*	$NetBSD: vfs_syscalls_43.c,v 1.68 2021/09/07 11:43:02 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.67 2021/08/15 07:57:46 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.68 2021/09/07 11:43:02 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -420,6 +420,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_machdep.c
diff -u src/sys/compat/freebsd/freebsd_machdep.c:1.4 src/sys/compat/freebsd/freebsd_machdep.c:1.5
--- src/sys/compat/freebsd/freebsd_machdep.c:1.4	Sun Sep 17 09:41:35 2017
+++ src/sys/compat/freebsd/freebsd_machdep.c	Tue Sep  7 11:43:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: freebsd_machdep.c,v 1.4 2017/09/17 09:41:35 maxv Exp $	*/
+/*	$NetBSD: freebsd_machdep.c,v 1.5 2021/09/07 11:43:03 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_machdep.c,v 1.4 2017/09/17 09:41:35 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: freebsd_machdep.c,v 1.5 2021/09/07 11:43:03 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -88,6 +88,8 @@ freebsd_sendsig(const ksiginfo_t *ksi, c
 
 	fp--;
 
+	memset(&frame, 0, sizeof(frame));
+
 	/* Build stack frame for signal trampoline. */
 	frame.sf_signum = sig;
 	frame.sf_code = code;

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.34
--- src/sys/compat/freebsd/freebsd_misc.c:1.33	Sun Nov  9 18:30:38 2014
+++ src/sys/compat/freebsd/freebsd_misc.c	Tue Sep  7 11:43:03 2021
@@ -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.34 2021/09/07 11:43:03 riastradh 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.34 2021/09/07 11:43:03 riastradh 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.23
--- src/sys/compat/freebsd/freebsd_sched.c:1.22	Sat Jun 28 11:06:31 2014
+++ src/sys/compat/freebsd/freebsd_sched.c	Tue Sep  7 11:43:03 2021
@@ -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.23 2021/09/07 11:43:03 riastradh 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.23 2021/09/07 11:43:03 riastradh 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.51 src/sys/compat/linux/arch/alpha/linux_machdep.c:1.52
--- src/sys/compat/linux/arch/alpha/linux_machdep.c:1.51	Thu Sep  3 14:26:31 2020
+++ src/sys/compat/linux/arch/alpha/linux_machdep.c	Tue Sep  7 11:43:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.51 2020/09/03 14:26:31 thorpej Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.52 2021/09/07 11:43:03 riastradh 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.51 2020/09/03 14:26:31 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.52 2021/09/07 11:43:03 riastradh 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/alpha/linux_osf1.c
diff -u src/sys/compat/linux/arch/alpha/linux_osf1.c:1.4 src/sys/compat/linux/arch/alpha/linux_osf1.c:1.5
--- src/sys/compat/linux/arch/alpha/linux_osf1.c:1.4	Tue Oct  6 13:38:49 2020
+++ src/sys/compat/linux/arch/alpha/linux_osf1.c	Tue Sep  7 11:43:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_osf1.c,v 1.4 2020/10/06 13:38:49 christos Exp $	*/
+/*	$NetBSD: linux_osf1.c,v 1.5 2021/09/07 11:43:03 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1999 Christopher G. Demetriou.  All rights reserved.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_osf1.c,v 1.4 2020/10/06 13:38:49 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_osf1.c,v 1.5 2021/09/07 11:43:03 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -109,6 +109,8 @@ static void
 osf1_cvt_rusage_from_native(const struct rusage *ru, struct osf1_rusage *oru)
 {
 
+	memset(oru, 0, sizeof(*oru));
+
 	oru->ru_utime.tv_sec = ru->ru_utime.tv_sec;
 	oru->ru_utime.tv_usec = ru->ru_utime.tv_usec;
 
@@ -135,7 +137,7 @@ static void
 osf1_cvt_statfs_from_native(const struct statvfs *bsfs, struct osf1_statfs *osfs)
 {
 
-	memset(osfs, 0, sizeof (struct osf1_statfs));
+	memset(osfs, 0, sizeof(*osfs));
 	if (!strncmp(MOUNT_FFS, bsfs->f_fstypename, sizeof(bsfs->f_fstypename)))
 		osfs->f_type = OSF1_MOUNT_UFS;
 	else if (!strncmp(MOUNT_NFS, bsfs->f_fstypename, sizeof(bsfs->f_fstypename)))
@@ -665,6 +667,7 @@ linux_sys_osf1_usleep_thread(struct lwp 
 		if (endtv.tv_sec < 0 || endtv.tv_usec < 0)
 			endtv.tv_sec = endtv.tv_usec = 0;
 
+		memset(&endotv, 0, sizeof(endotv));
 		endotv.tv_sec = endtv.tv_sec;
 		endotv.tv_usec = endtv.tv_usec;
 		error = copyout(&endotv, SCARG(uap, slept), sizeof endotv);

Index: src/sys/compat/linux/arch/amd64/linux_machdep.c
diff -u src/sys/compat/linux/arch/amd64/linux_machdep.c:1.59 src/sys/compat/linux/arch/amd64/linux_machdep.c:1.60
--- src/sys/compat/linux/arch/amd64/linux_machdep.c:1.59	Fri Aug 23 10:31:14 2019
+++ src/sys/compat/linux/arch/amd64/linux_machdep.c	Tue Sep  7 11:43:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.59 2019/08/23 10:31:14 maxv Exp $ */
+/*	$NetBSD: linux_machdep.c,v 1.60 2021/09/07 11:43:03 riastradh 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.59 2019/08/23 10:31:14 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.60 2021/09/07 11:43:03 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -227,6 +227,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.33 src/sys/compat/linux/arch/arm/linux_machdep.c:1.34
--- src/sys/compat/linux/arch/arm/linux_machdep.c:1.33	Mon Feb  1 19:31:34 2021
+++ src/sys/compat/linux/arch/arm/linux_machdep.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.33 2021/02/01 19:31:34 skrll Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.34 2021/09/07 11:43:04 riastradh 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.33 2021/02/01 19:31:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.34 2021/09/07 11:43:04 riastradh 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.22 src/sys/compat/linux/arch/arm/linux_ptrace.c:1.23
--- src/sys/compat/linux/arch/arm/linux_ptrace.c:1.22	Sat May 23 23:42:41 2020
+++ src/sys/compat/linux/arch/arm/linux_ptrace.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_ptrace.c,v 1.22 2020/05/23 23:42:41 ad Exp $	*/
+/*	$NetBSD: linux_ptrace.c,v 1.23 2021/09/07 11:43:04 riastradh 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.22 2020/05/23 23:42:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.23 2021/09/07 11:43:04 riastradh 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.167 src/sys/compat/linux/arch/i386/linux_machdep.c:1.168
--- src/sys/compat/linux/arch/i386/linux_machdep.c:1.167	Mon Aug  9 19:57:57 2021
+++ src/sys/compat/linux/arch/i386/linux_machdep.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_machdep.c,v 1.167 2021/08/09 19:57:57 andvar Exp $	*/
+/*	$NetBSD: linux_machdep.c,v 1.168 2021/09/07 11:43:04 riastradh 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.167 2021/08/09 19:57:57 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.168 2021/09/07 11:43:04 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_user_ldt.h"
@@ -252,6 +252,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];
@@ -329,6 +331,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];
@@ -837,6 +841,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;
@@ -932,6 +937,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;
@@ -939,6 +945,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.34 src/sys/compat/linux/arch/i386/linux_ptrace.c:1.35
--- src/sys/compat/linux/arch/i386/linux_ptrace.c:1.34	Sat May 23 23:42:41 2020
+++ src/sys/compat/linux/arch/i386/linux_ptrace.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_ptrace.c,v 1.34 2020/05/23 23:42:41 ad Exp $	*/
+/*	$NetBSD: linux_ptrace.c,v 1.35 2021/09/07 11:43:04 riastradh 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.34 2020/05/23 23:42:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.35 2021/09/07 11:43:04 riastradh 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.43
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.43 2021/09/07 11:43:04 riastradh 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.43 2021/09/07 11:43:04 riastradh 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.44
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.44 2021/09/07 11:43:04 riastradh 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.44 2021/09/07 11:43:04 riastradh 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.25
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.25 2021/09/07 11:43:04 riastradh 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.25 2021/09/07 11:43:04 riastradh 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.51
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.51 2021/09/07 11:43:04 riastradh 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.51 2021/09/07 11:43:04 riastradh 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.32 src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.33
--- src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.32	Sat May 23 23:42:41 2020
+++ src/sys/compat/linux/arch/powerpc/linux_ptrace.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_ptrace.c,v 1.32 2020/05/23 23:42:41 ad Exp $ */
+/*	$NetBSD: linux_ptrace.c,v 1.33 2021/09/07 11:43:04 riastradh 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.32 2020/05/23 23:42:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.33 2021/09/07 11:43:04 riastradh 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.28
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.28 2021/09/07 11:43:04 riastradh 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.28 2021/09/07 11:43:04 riastradh 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.14
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.14 2021/09/07 11:43:04 riastradh 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.14 2021/09/07 11:43:04 riastradh 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.118 src/sys/compat/linux/common/linux_file.c:1.119
--- src/sys/compat/linux/common/linux_file.c:1.118	Sat May 23 23:42:41 2020
+++ src/sys/compat/linux/common/linux_file.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_file.c,v 1.118 2020/05/23 23:42:41 ad Exp $	*/
+/*	$NetBSD: linux_file.c,v 1.119 2021/09/07 11:43:04 riastradh 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.118 2020/05/23 23:42:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.119 2021/09/07 11:43:04 riastradh 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.18 src/sys/compat/linux/common/linux_hdio.c:1.19
--- src/sys/compat/linux/common/linux_hdio.c:1.18	Sun Feb  3 03:19:26 2019
+++ src/sys/compat/linux/common/linux_hdio.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_hdio.c,v 1.18 2019/02/03 03:19:26 mrg Exp $	*/
+/*	$NetBSD: linux_hdio.c,v 1.19 2021/09/07 11:43:04 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2000 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_hdio.c,v 1.18 2019/02/03 03:19:26 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_hdio.c,v 1.19 2021/09/07 11:43:04 riastradh 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;
@@ -131,6 +132,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.251 src/sys/compat/linux/common/linux_misc.c:1.252
--- src/sys/compat/linux/common/linux_misc.c:1.251	Thu Jun 11 22:21:05 2020
+++ src/sys/compat/linux/common/linux_misc.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_misc.c,v 1.251 2020/06/11 22:21:05 ad Exp $	*/
+/*	$NetBSD: linux_misc.c,v 1.252 2021/09/07 11:43:04 riastradh 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.251 2020/06/11 22:21:05 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_misc.c,v 1.252 2021/09/07 11:43:04 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -629,6 +629,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);
@@ -1399,6 +1401,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.8
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.8 2021/09/07 11:43:04 riastradh 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.8 2021/09/07 11:43:04 riastradh 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.67
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.67 2021/09/07 11:43:04 riastradh 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.67 2021/09/07 11:43:04 riastradh 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.67
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.67 2021/09/07 11:43:04 riastradh 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.67 2021/09/07 11:43:04 riastradh 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.78 src/sys/compat/linux/common/linux_sched.c:1.79
--- src/sys/compat/linux/common/linux_sched.c:1.78	Sat May 23 23:42:41 2020
+++ src/sys/compat/linux/common/linux_sched.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_sched.c,v 1.78 2020/05/23 23:42:41 ad Exp $	*/
+/*	$NetBSD: linux_sched.c,v 1.79 2021/09/07 11:43:04 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2019 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sched.c,v 1.78 2020/05/23 23:42:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_sched.c,v 1.79 2021/09/07 11:43:04 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -346,6 +346,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.83 src/sys/compat/linux/common/linux_signal.c:1.84
--- src/sys/compat/linux/common/linux_signal.c:1.83	Sat May 23 23:42:41 2020
+++ src/sys/compat/linux/common/linux_signal.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_signal.c,v 1.83 2020/05/23 23:42:41 ad Exp $	*/
+/*	$NetBSD: linux_signal.c,v 1.84 2021/09/07 11:43:04 riastradh 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.83 2020/05/23 23:42:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.84 2021/09/07 11:43:04 riastradh 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.152 src/sys/compat/linux/common/linux_socket.c:1.153
--- src/sys/compat/linux/common/linux_socket.c:1.152	Tue Nov  3 22:08:44 2020
+++ src/sys/compat/linux/common/linux_socket.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_socket.c,v 1.152 2020/11/03 22:08:44 christos Exp $	*/
+/*	$NetBSD: linux_socket.c,v 1.153 2021/09/07 11:43:04 riastradh 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.152 2020/11/03 22:08:44 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.153 2021/09/07 11:43:04 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -440,6 +440,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;
@@ -452,6 +453,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;
@@ -699,6 +701,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.39 src/sys/compat/linux/common/linux_time.c:1.40
--- src/sys/compat/linux/common/linux_time.c:1.39	Sat Jul 29 02:31:22 2017
+++ src/sys/compat/linux/common/linux_time.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_time.c,v 1.39 2017/07/29 02:31:22 riastradh Exp $ */
+/*	$NetBSD: linux_time.c,v 1.40 2021/09/07 11:43:04 riastradh 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.39 2017/07/29 02:31:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_time.c,v 1.40 2021/09/07 11:43:04 riastradh 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.45 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.46
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.45	Sun May 19 08:46:15 2019
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.45 2019/05/19 08:46:15 maxv Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.46 2021/09/07 11:43:04 riastradh 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.45 2019/05/19 08:46:15 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.46 2021/09/07 11:43:04 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_user_ldt.h"
@@ -126,6 +126,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.20
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.20 2021/09/07 11:43:04 riastradh 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.20 2021/09/07 11:43:04 riastradh 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.12
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.12 2021/09/07 11:43:04 riastradh 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.12 2021/09/07 11:43:04 riastradh 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.20 src/sys/compat/linux32/common/linux32_signal.c:1.21
--- src/sys/compat/linux32/common/linux32_signal.c:1.20	Fri Aug 23 08:31:11 2019
+++ src/sys/compat/linux32/common/linux32_signal.c	Tue Sep  7 11:43:04 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_signal.c,v 1.20 2019/08/23 08:31:11 maxv Exp $ */
+/*	$NetBSD: linux32_signal.c,v 1.21 2021/09/07 11:43:04 riastradh 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.20 2019/08/23 08:31:11 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.21 2021/09/07 11:43:04 riastradh 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.38
--- 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	Tue Sep  7 11:43:04 2021
@@ -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.38 2021/09/07 11:43:04 riastradh 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.38 2021/09/07 11:43:04 riastradh 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.35 src/sys/compat/netbsd32/netbsd32_compat_12.c:1.36
--- src/sys/compat/netbsd32/netbsd32_compat_12.c:1.35	Tue Jan 19 03:20:13 2021
+++ src/sys/compat/netbsd32/netbsd32_compat_12.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_12.c,v 1.35 2021/01/19 03:20:13 simonb Exp $	*/
+/*	$NetBSD: netbsd32_compat_12.c,v 1.36 2021/09/07 11:43:05 riastradh 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.35 2021/01/19 03:20:13 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_12.c,v 1.36 2021/09/07 11:43:05 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -62,6 +62,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.41 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.42
--- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.41	Tue Jan 19 08:10:17 2021
+++ src/sys/compat/netbsd32/netbsd32_compat_20.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_20.c,v 1.41 2021/01/19 08:10:17 wiz Exp $	*/
+/*	$NetBSD: netbsd32_compat_20.c,v 1.42 2021/09/07 11:43:05 riastradh 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.41 2021/01/19 08:10:17 wiz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.42 2021/09/07 11:43:05 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -57,6 +57,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.61 src/sys/compat/netbsd32/netbsd32_compat_43.c:1.62
--- src/sys/compat/netbsd32/netbsd32_compat_43.c:1.61	Tue Jan 19 03:20:13 2021
+++ src/sys/compat/netbsd32/netbsd32_compat_43.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_43.c,v 1.61 2021/01/19 03:20:13 simonb Exp $	*/
+/*	$NetBSD: netbsd32_compat_43.c,v 1.62 2021/09/07 11:43:05 riastradh 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.61 2021/01/19 03:20:13 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.62 2021/09/07 11:43:05 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_43.h"
@@ -646,6 +646,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;
@@ -704,6 +705,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.51 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.52
--- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.51	Thu Feb 18 12:54:03 2021
+++ src/sys/compat/netbsd32/netbsd32_compat_50.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_compat_50.c,v 1.51 2021/02/18 12:54:03 simonb Exp $	*/
+/*	$NetBSD: netbsd32_compat_50.c,v 1.52 2021/09/07 11:43:05 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.51 2021/02/18 12:54:03 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.52 2021/09/07 11:43:05 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -170,6 +170,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));
@@ -255,6 +256,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;
@@ -401,6 +404,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));
@@ -423,6 +427,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_signal.c
diff -u src/sys/compat/netbsd32/netbsd32_signal.c:1.51 src/sys/compat/netbsd32/netbsd32_signal.c:1.52
--- src/sys/compat/netbsd32/netbsd32_signal.c:1.51	Tue Jan 19 03:20:13 2021
+++ src/sys/compat/netbsd32/netbsd32_signal.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_signal.c,v 1.51 2021/01/19 03:20:13 simonb Exp $	*/
+/*	$NetBSD: netbsd32_signal.c,v 1.52 2021/09/07 11:43:05 riastradh 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.51 2021/01/19 03:20:13 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.52 2021/09/07 11:43:05 riastradh 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_conv.h
diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.45 src/sys/compat/netbsd32/netbsd32_conv.h:1.46
--- src/sys/compat/netbsd32/netbsd32_conv.h:1.45	Tue Jan 19 03:41:22 2021
+++ src/sys/compat/netbsd32/netbsd32_conv.h	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_conv.h,v 1.45 2021/01/19 03:41:22 simonb Exp $	*/
+/*	$NetBSD: netbsd32_conv.h,v 1.46 2021/09/07 11:43:05 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -58,6 +58,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;
 }
@@ -67,6 +68,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;
 }
@@ -76,6 +78,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;
 }
@@ -85,6 +88,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;
 }
@@ -94,6 +98,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,
@@ -105,6 +110,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,
@@ -116,6 +122,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);
 }
@@ -125,6 +132,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);
 }
@@ -134,6 +142,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;
 }
@@ -143,6 +152,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;
 }
@@ -152,6 +162,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;
 }
@@ -161,6 +172,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;
 }
@@ -170,6 +182,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
@@ -195,6 +208,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
@@ -220,6 +234,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
@@ -254,6 +269,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))))
@@ -284,6 +300,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;
@@ -297,6 +314,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;
@@ -309,21 +327,27 @@ static __inline void
 netbsd32_to_mmsghdr(const struct netbsd32_mmsghdr *mmsg32,
     struct mmsghdr *mmsg)
 {
-    netbsd32_to_msghdr(&mmsg32->msg_hdr, &mmsg->msg_hdr);
-    mmsg->msg_len = mmsg32->msg_len;
+
+	memset(mmsg, 0, sizeof(*mmsg));
+	netbsd32_to_msghdr(&mmsg32->msg_hdr, &mmsg->msg_hdr);
+	mmsg->msg_len = mmsg32->msg_len;
 }
 
 static __inline void
 netbsd32_from_mmsghdr(struct netbsd32_mmsghdr *mmsg32,
     const struct mmsghdr *mmsg)
 {
-    netbsd32_from_msghdr(&mmsg32->msg_hdr, &mmsg->msg_hdr);
-    mmsg32->msg_len = mmsg->msg_len;
+
+	memset(mmsg32, 0, sizeof(*mmsg32));
+	netbsd32_from_msghdr(&mmsg32->msg_hdr, &mmsg->msg_hdr);
+	mmsg32->msg_len = mmsg->msg_len;
 }
 
 static __inline void
 netbsd32_from_statvfs90(const struct statvfs *sbp, struct netbsd32_statvfs90 *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;
@@ -364,6 +388,8 @@ netbsd32_from_statvfs90(const struct sta
 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;
@@ -406,6 +432,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;
@@ -429,6 +456,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;
@@ -451,6 +479,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;
@@ -477,6 +506,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;
@@ -503,6 +533,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;
@@ -531,6 +562,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;
@@ -559,6 +591,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;
@@ -581,6 +614,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;
@@ -597,6 +631,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;
@@ -647,6 +682,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;
@@ -662,6 +698,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;
@@ -709,6 +746,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;
@@ -720,6 +758,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;
@@ -755,6 +794,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];
@@ -764,6 +804,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;
@@ -775,6 +817,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;
@@ -786,6 +830,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;
 	/*
@@ -848,6 +894,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),
@@ -875,6 +922,7 @@ netbsd32_copyout_nvlist_ref_t(netbsd32_p
 {
 	netbsd32_nvlist_ref_t n32nv;
 
+	memset(&n32nv, 0, sizeof(n32nv));
 	NETBSD32PTR32(n32nv.buf, p->buf);
 	n32nv.len = p->len;
 	n32nv.flags = p->flags;
@@ -886,6 +934,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;
@@ -896,6 +946,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.7 src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.8
--- src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.7	Mon Aug 30 08:39:24 2021
+++ src/sys/compat/netbsd32/netbsd32_nfssvc.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_nfssvc.c,v 1.7 2021/08/30 08:39:24 riastradh Exp $	*/
+/*	$NetBSD: netbsd32_nfssvc.c,v 1.8 2021/09/07 11:43:05 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2015 Matthew R. Green
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_nfssvc.c,v 1.7 2021/08/30 08:39:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_nfssvc.c,v 1.8 2021/09/07 11:43:05 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_nfs.h"
@@ -121,6 +121,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.8 src/sys/compat/netbsd32/netbsd32_ptrace.c:1.9
--- src/sys/compat/netbsd32/netbsd32_ptrace.c:1.8	Tue Dec 24 14:50:59 2019
+++ src/sys/compat/netbsd32/netbsd32_ptrace.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_ptrace.c,v 1.8 2019/12/24 14:50:59 kamil Exp $	*/
+/*	$NetBSD: netbsd32_ptrace.c,v 1.9 2021/09/07 11:43:05 riastradh 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.8 2019/12/24 14:50:59 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_ptrace.c,v 1.9 2021/09/07 11:43:05 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ptrace.h"
@@ -55,6 +55,7 @@ static void
 netbsd32_lwpstatus_to_lwpstatus32(struct netbsd32_ptrace_lwpstatus *pls32,
     const struct ptrace_lwpstatus *pls)
 {
+	memset(pls32, 0, sizeof(*pls32));
 	pls32->pl_lwpid = pls->pl_lwpid;
 	pls32->pl_sigpend = pls->pl_sigpend;
 	pls32->pl_sigmask = pls->pl_sigmask;
@@ -103,6 +104,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);
@@ -134,6 +136,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_time.c
diff -u src/sys/compat/netbsd32/netbsd32_time.c:1.55 src/sys/compat/netbsd32/netbsd32_time.c:1.56
--- src/sys/compat/netbsd32/netbsd32_time.c:1.55	Thu Feb 18 12:54:03 2021
+++ src/sys/compat/netbsd32/netbsd32_time.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_time.c,v 1.55 2021/02/18 12:54:03 simonb Exp $	*/
+/*	$NetBSD: netbsd32_time.c,v 1.56 2021/09/07 11:43:05 riastradh 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.55 2021/02/18 12:54:03 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.56 2021/09/07 11:43:05 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ntp.h"
@@ -204,6 +204,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));
@@ -268,6 +269,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) {
@@ -479,6 +481,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));
@@ -501,6 +504,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.24 src/sys/compat/netbsd32/netbsd32_wait.c:1.25
--- src/sys/compat/netbsd32/netbsd32_wait.c:1.24	Thu Oct 15 23:06:06 2020
+++ src/sys/compat/netbsd32/netbsd32_wait.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_wait.c,v 1.24 2020/10/15 23:06:06 rin Exp $	*/
+/*	$NetBSD: netbsd32_wait.c,v 1.25 2021/09/07 11:43:05 riastradh 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.24 2020/10/15 23:06:06 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.25 2021/09/07 11:43:05 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -133,6 +133,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.83 src/sys/compat/ossaudio/ossaudio.c:1.84
--- src/sys/compat/ossaudio/ossaudio.c:1.83	Sun Apr 19 21:37:00 2020
+++ src/sys/compat/ossaudio/ossaudio.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ossaudio.c,v 1.83 2020/04/19 21:37:00 nia Exp $	*/
+/*	$NetBSD: ossaudio.c,v 1.84 2021/09/07 11:43:05 riastradh 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.83 2020/04/19 21:37:00 nia Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ossaudio.c,v 1.84 2021/09/07 11:43:05 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -664,6 +664,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) /
@@ -686,6 +687,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 =
@@ -776,6 +778,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;
@@ -793,6 +796,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.70 src/sys/compat/sunos/sunos_ioctl.c:1.71
--- src/sys/compat/sunos/sunos_ioctl.c:1.70	Mon Sep 23 20:38:27 2019
+++ src/sys/compat/sunos/sunos_ioctl.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos_ioctl.c,v 1.70 2019/09/23 20:38:27 christos Exp $	*/
+/*	$NetBSD: sunos_ioctl.c,v 1.71 2021/09/07 11:43:05 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1993 Markus Wild.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.70 2019/09/23 20:38:27 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.71 2021/09/07 11:43:05 riastradh 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;
@@ -486,6 +494,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;
 
@@ -727,6 +736,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;
 
@@ -937,6 +947,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;
@@ -963,6 +976,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.176 src/sys/compat/sunos/sunos_misc.c:1.177
--- src/sys/compat/sunos/sunos_misc.c:1.176	Sat Oct 26 11:34:48 2019
+++ src/sys/compat/sunos/sunos_misc.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos_misc.c,v 1.176 2019/10/26 11:34:48 christos Exp $	*/
+/*	$NetBSD: sunos_misc.c,v 1.177 2021/09/07 11:43:05 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_misc.c,v 1.176 2019/10/26 11:34:48 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos_misc.c,v 1.177 2021/09/07 11:43:05 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -309,6 +309,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];
 }
 
@@ -316,6 +317,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;
@@ -435,6 +437,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.35 src/sys/compat/sunos32/sunos32_ioctl.c:1.36
--- src/sys/compat/sunos32/sunos32_ioctl.c:1.35	Tue Apr 23 07:45:06 2019
+++ src/sys/compat/sunos32/sunos32_ioctl.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos32_ioctl.c,v 1.35 2019/04/23 07:45:06 msaitoh Exp $	*/
+/*	$NetBSD: sunos32_ioctl.c,v 1.36 2021/09/07 11:43:05 riastradh 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.35 2019/04/23 07:45:06 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.36 2021/09/07 11:43:05 riastradh 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;
@@ -534,6 +542,7 @@ sunos32_sys_ioctl(struct lwp *l, const s
 		if (error != 0)
 			return error;
 
+		memset(&ss, 0, sizeof(ss));
 		ss.ts_row = ws.ws_row;
 		ss.ts_col = ws.ws_col;
 
@@ -766,6 +775,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;
 
@@ -962,6 +973,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;
@@ -988,6 +1002,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.84 src/sys/compat/sunos32/sunos32_misc.c:1.85
--- src/sys/compat/sunos32/sunos32_misc.c:1.84	Wed Jun 24 10:28:17 2020
+++ src/sys/compat/sunos32/sunos32_misc.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos32_misc.c,v 1.84 2020/06/24 10:28:17 jdolecek Exp $	*/
+/*	$NetBSD: sunos32_misc.c,v 1.85 2021/09/07 11:43:05 riastradh 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.84 2020/06/24 10:28:17 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos32_misc.c,v 1.85 2021/09/07 11:43:05 riastradh 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;
@@ -487,6 +488,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];
 }
 
@@ -494,6 +496,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;
@@ -622,6 +625,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/statvfs.h
diff -u src/sys/compat/sys/statvfs.h:1.3 src/sys/compat/sys/statvfs.h:1.4
--- src/sys/compat/sys/statvfs.h:1.3	Fri Jul  3 19:00:01 2020
+++ src/sys/compat/sys/statvfs.h	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: statvfs.h,v 1.3 2020/07/03 19:00:01 christos Exp $	 */
+/*	$NetBSD: statvfs.h,v 1.4 2021/09/07 11:43:05 riastradh Exp $	 */
 
 /*-
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -77,6 +77,9 @@ __BEGIN_DECLS
 static __inline void
 statvfs_to_statvfs90(const struct statvfs *s, struct statvfs90 *s90)
 {
+
+	memset(s90, 0, sizeof(*s90));
+
 	s90->f_flag = s->f_flag;
 	s90->f_bsize = s->f_bsize;
 	s90->f_frsize = s->f_frsize;

Index: src/sys/compat/sys/time_types.h
diff -u src/sys/compat/sys/time_types.h:1.5 src/sys/compat/sys/time_types.h:1.6
--- src/sys/compat/sys/time_types.h:1.5	Fri Jun 15 08:17:38 2018
+++ src/sys/compat/sys/time_types.h	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: time_types.h,v 1.5 2018/06/15 08:17:38 kre Exp $	*/
+/*	$NetBSD: time_types.h,v 1.6 2021/09/07 11:43:05 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -72,61 +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)
 {
-#if INT32_MAX < LONG_MAX	/* scrub padding */
-	memset(ts50, 0, offsetof(struct timespec50, tv_nsec));
-#endif
+	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.38 src/sys/compat/ultrix/ultrix_ioctl.c:1.39
--- src/sys/compat/ultrix/ultrix_ioctl.c:1.38	Tue Apr 23 07:45:06 2019
+++ src/sys/compat/ultrix/ultrix_ioctl.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ultrix_ioctl.c,v 1.38 2019/04/23 07:45:06 msaitoh Exp $ */
+/*	$NetBSD: ultrix_ioctl.c,v 1.39 2021/09/07 11:43:05 riastradh 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.38 2019/04/23 07:45:06 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ultrix_ioctl.c,v 1.39 2021/09/07 11:43:05 riastradh 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;
@@ -534,6 +542,7 @@ ultrix_sys_ioctl(struct lwp *l, const st
 		if (error != 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.125 src/sys/compat/ultrix/ultrix_misc.c:1.126
--- src/sys/compat/ultrix/ultrix_misc.c:1.125	Fri Aug 10 21:44:59 2018
+++ src/sys/compat/ultrix/ultrix_misc.c	Tue Sep  7 11:43:05 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ultrix_misc.c,v 1.125 2018/08/10 21:44:59 pgoyette Exp $	*/
+/*	$NetBSD: ultrix_misc.c,v 1.126 2021/09/07 11:43:05 riastradh 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.125 2018/08/10 21:44:59 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.126 2021/09/07 11:43:05 riastradh 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