Module Name: src Committed By: martin Date: Wed Jun 21 21:04:03 UTC 2023
Modified Files: src/sys/compat/common [netbsd-8]: kern_info_09.c kern_info_43.c kern_resource_43.c kern_sig_13.c kern_sig_43.c kern_time_50.c vfs_syscalls_12.c vfs_syscalls_30.c vfs_syscalls_43.c src/sys/compat/freebsd [netbsd-8]: freebsd_misc.c freebsd_sched.c src/sys/compat/linux/arch/alpha [netbsd-8]: linux_machdep.c src/sys/compat/linux/arch/amd64 [netbsd-8]: linux_machdep.c src/sys/compat/linux/arch/arm [netbsd-8]: linux_machdep.c linux_ptrace.c src/sys/compat/linux/arch/i386 [netbsd-8]: linux_machdep.c linux_ptrace.c src/sys/compat/linux/arch/m68k [netbsd-8]: linux_machdep.c src/sys/compat/linux/arch/mips [netbsd-8]: linux_machdep.c src/sys/compat/linux/arch/powerpc [netbsd-8]: linux_exec_powerpc.c linux_machdep.c linux_ptrace.c src/sys/compat/linux/common [netbsd-8]: linux_cdrom.c linux_fdio.c linux_file.c linux_hdio.c linux_misc.c linux_mtio.c linux_oldolduname.c linux_olduname.c linux_sched.c linux_signal.c linux_socket.c linux_time.c src/sys/compat/linux32/arch/amd64 [netbsd-8]: linux32_machdep.c src/sys/compat/linux32/common [netbsd-8]: linux32_exec_elf32.c linux32_resource.c linux32_signal.c linux32_time.c src/sys/compat/netbsd32 [netbsd-8]: netbsd32_compat_12.c netbsd32_compat_20.c netbsd32_compat_43.c netbsd32_compat_50.c netbsd32_conv.h netbsd32_nfssvc.c netbsd32_ptrace.c netbsd32_signal.c netbsd32_time.c netbsd32_wait.c src/sys/compat/ossaudio [netbsd-8]: ossaudio.c src/sys/compat/sunos [netbsd-8]: sunos_ioctl.c sunos_misc.c src/sys/compat/sunos32 [netbsd-8]: sunos32_ioctl.c sunos32_misc.c src/sys/compat/sys [netbsd-8]: time_types.h src/sys/compat/ultrix [netbsd-8]: ultrix_ioctl.c ultrix_misc.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1836): sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168 sys/compat/sunos/sunos_misc.c: revision 1.177 sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52 sys/compat/common/kern_resource_43.c: revision 1.23 sys/compat/netbsd32/netbsd32_conv.h: revision 1.46 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35 sys/compat/common/vfs_syscalls_12.c: revision 1.38 sys/compat/ultrix/ultrix_misc.c: revision 1.126 sys/compat/common/kern_sig_43.c: revision 1.37 sys/compat/linux/common/linux_mtio.c: revision 1.8 sys/compat/freebsd/freebsd_misc.c: revision 1.34 sys/compat/linux/common/linux_olduname.c: revision 1.67 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44 sys/compat/freebsd/freebsd_sched.c: revision 1.23 sys/compat/ossaudio/ossaudio.c: revision 1.84 sys/compat/sys/time_types.h: revision 1.6 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51 sys/compat/linux/common/linux_file.c: revision 1.119 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34 sys/compat/netbsd32/netbsd32_wait.c: revision 1.25 sys/compat/linux32/common/linux32_time.c: revision 1.38 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52 sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46 sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36 sys/compat/ultrix/ultrix_ioctl.c: revision 1.39 sys/compat/linux/common/linux_misc.c: revision 1.252 sys/compat/linux/common/linux_hdio.c: revision 1.19 sys/compat/sunos/sunos_ioctl.c: revision 1.71 sys/compat/linux/common/linux_sched.c: revision 1.79 sys/compat/common/kern_info_43.c: revision 1.40 sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20 sys/compat/linux/common/linux_socket.c: revision 1.153 sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60 sys/compat/common/vfs_syscalls_43.c: revision 1.68 sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25 sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9 sys/compat/common/kern_time_50.c: revision 1.37 sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42 sys/compat/linux/common/linux_cdrom.c: revision 1.28 sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43 sys/compat/common/kern_info_09.c: revision 1.22 sys/compat/linux32/common/linux32_resource.c: revision 1.12 sys/compat/linux/common/linux_oldolduname.c: revision 1.67 sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8 sys/compat/linux32/common/linux32_signal.c: revision 1.21 sys/compat/common/kern_sig_13.c: revision 1.22 sys/compat/sunos32/sunos32_ioctl.c: revision 1.36 sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23 sys/compat/netbsd32/netbsd32_time.c: revision 1.56 sys/compat/linux/common/linux_signal.c: revision 1.84 sys/compat/netbsd32/netbsd32_signal.c: revision 1.52 sys/compat/sunos32/sunos32_misc.c: revision 1.85 sys/compat/linux/common/linux_time.c: revision 1.40 sys/compat/linux/common/linux_fdio.c: revision 1.14 sys/compat/common/vfs_syscalls_30.c: revision 1.43 sys/compat: Memset zero before copyout. Just in case of uninitialized padding which would lead to kernel stack disclosure. If the compiler can prove the memset redundant then it can optimize it away; otherwise better safe than sorry. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.20.90.1 src/sys/compat/common/kern_info_09.c cvs rdiff -u -r1.35 -r1.35.22.1 src/sys/compat/common/kern_info_43.c cvs rdiff -u -r1.21 -r1.21.90.1 src/sys/compat/common/kern_resource_43.c cvs rdiff -u -r1.20 -r1.20.50.1 src/sys/compat/common/kern_sig_13.c cvs rdiff -u -r1.34.50.1 -r1.34.50.2 src/sys/compat/common/kern_sig_43.c cvs rdiff -u -r1.31 -r1.31.10.1 src/sys/compat/common/kern_time_50.c cvs rdiff -u -r1.33.8.2 -r1.33.8.3 src/sys/compat/common/vfs_syscalls_12.c cvs rdiff -u -r1.36.12.1 -r1.36.12.2 src/sys/compat/common/vfs_syscalls_30.c cvs rdiff -u -r1.59.8.3 -r1.59.8.4 src/sys/compat/common/vfs_syscalls_43.c cvs rdiff -u -r1.33 -r1.33.12.1 src/sys/compat/freebsd/freebsd_misc.c cvs rdiff -u -r1.22 -r1.22.20.1 src/sys/compat/freebsd/freebsd_sched.c cvs rdiff -u -r1.50 -r1.50.12.1 \ src/sys/compat/linux/arch/alpha/linux_machdep.c cvs rdiff -u -r1.51.6.3 -r1.51.6.4 \ src/sys/compat/linux/arch/amd64/linux_machdep.c cvs rdiff -u -r1.32 -r1.32.12.1 src/sys/compat/linux/arch/arm/linux_machdep.c cvs rdiff -u -r1.19.10.1 -r1.19.10.2 \ src/sys/compat/linux/arch/arm/linux_ptrace.c cvs rdiff -u -r1.163 -r1.163.6.1 \ src/sys/compat/linux/arch/i386/linux_machdep.c cvs rdiff -u -r1.31.10.1 -r1.31.10.2 \ src/sys/compat/linux/arch/i386/linux_ptrace.c cvs rdiff -u -r1.42 -r1.42.52.1 \ src/sys/compat/linux/arch/m68k/linux_machdep.c cvs rdiff -u -r1.43 -r1.43.12.1 \ src/sys/compat/linux/arch/mips/linux_machdep.c cvs rdiff -u -r1.24 -r1.24.32.1 \ src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c cvs rdiff -u -r1.50 -r1.50.2.1 \ src/sys/compat/linux/arch/powerpc/linux_machdep.c cvs rdiff -u -r1.29.10.1 -r1.29.10.2 \ src/sys/compat/linux/arch/powerpc/linux_ptrace.c cvs rdiff -u -r1.27 -r1.27.80.1 src/sys/compat/linux/common/linux_cdrom.c cvs rdiff -u -r1.13 -r1.13.84.1 src/sys/compat/linux/common/linux_fdio.c cvs rdiff -u -r1.115 -r1.115.10.1 src/sys/compat/linux/common/linux_file.c cvs rdiff -u -r1.17 -r1.17.10.1 src/sys/compat/linux/common/linux_hdio.c cvs rdiff -u -r1.238.2.2 -r1.238.2.3 src/sys/compat/linux/common/linux_misc.c cvs rdiff -u -r1.7 -r1.7.84.1 src/sys/compat/linux/common/linux_mtio.c cvs rdiff -u -r1.66 -r1.66.80.1 \ src/sys/compat/linux/common/linux_oldolduname.c \ src/sys/compat/linux/common/linux_olduname.c cvs rdiff -u -r1.69 -r1.69.4.1 src/sys/compat/linux/common/linux_sched.c cvs rdiff -u -r1.79.6.1 -r1.79.6.2 src/sys/compat/linux/common/linux_signal.c cvs rdiff -u -r1.138.6.6 -r1.138.6.7 \ src/sys/compat/linux/common/linux_socket.c cvs rdiff -u -r1.37.22.1 -r1.37.22.2 src/sys/compat/linux/common/linux_time.c cvs rdiff -u -r1.38.6.2 -r1.38.6.3 \ src/sys/compat/linux32/arch/amd64/linux32_machdep.c cvs rdiff -u -r1.19 -r1.19.8.1 \ src/sys/compat/linux32/common/linux32_exec_elf32.c cvs rdiff -u -r1.11 -r1.11.30.1 \ src/sys/compat/linux32/common/linux32_resource.c cvs rdiff -u -r1.18.10.1 -r1.18.10.2 \ src/sys/compat/linux32/common/linux32_signal.c cvs rdiff -u -r1.37 -r1.37.30.1 src/sys/compat/linux32/common/linux32_time.c cvs rdiff -u -r1.33 -r1.33.30.1 src/sys/compat/netbsd32/netbsd32_compat_12.c cvs rdiff -u -r1.36.4.1 -r1.36.4.2 \ src/sys/compat/netbsd32/netbsd32_compat_20.c cvs rdiff -u -r1.54.8.1 -r1.54.8.2 \ src/sys/compat/netbsd32/netbsd32_compat_43.c cvs rdiff -u -r1.32.10.1 -r1.32.10.2 \ src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.31.8.4 -r1.31.8.5 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.5 -r1.5.8.1 src/sys/compat/netbsd32/netbsd32_nfssvc.c cvs rdiff -u -r1.4.6.1 -r1.4.6.2 src/sys/compat/netbsd32/netbsd32_ptrace.c cvs rdiff -u -r1.43.8.1 -r1.43.8.2 src/sys/compat/netbsd32/netbsd32_signal.c cvs rdiff -u -r1.49 -r1.49.6.1 src/sys/compat/netbsd32/netbsd32_time.c cvs rdiff -u -r1.23 -r1.23.8.1 src/sys/compat/netbsd32/netbsd32_wait.c cvs rdiff -u -r1.70.6.3 -r1.70.6.4 src/sys/compat/ossaudio/ossaudio.c cvs rdiff -u -r1.68 -r1.68.8.1 src/sys/compat/sunos/sunos_ioctl.c cvs rdiff -u -r1.170.10.1 -r1.170.10.2 src/sys/compat/sunos/sunos_misc.c cvs rdiff -u -r1.34 -r1.34.10.1 src/sys/compat/sunos32/sunos32_ioctl.c cvs rdiff -u -r1.77.10.1 -r1.77.10.2 src/sys/compat/sunos32/sunos32_misc.c cvs rdiff -u -r1.1.58.1 -r1.1.58.2 src/sys/compat/sys/time_types.h cvs rdiff -u -r1.37 -r1.37.8.1 src/sys/compat/ultrix/ultrix_ioctl.c cvs rdiff -u -r1.122 -r1.122.32.1 src/sys/compat/ultrix/ultrix_misc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/common/kern_info_09.c diff -u src/sys/compat/common/kern_info_09.c:1.20 src/sys/compat/common/kern_info_09.c:1.20.90.1 --- src/sys/compat/common/kern_info_09.c:1.20 Thu Dec 20 23:02:44 2007 +++ src/sys/compat/common/kern_info_09.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_info_09.c,v 1.20 2007/12/20 23:02:44 dsl Exp $ */ +/* $NetBSD: kern_info_09.c,v 1.20.90.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1982, 1986, 1991, 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_info_09.c,v 1.20 2007/12/20 23:02:44 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_info_09.c,v 1.20.90.1 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -100,6 +100,7 @@ compat_09_sys_uname(struct lwp *l, const const char *cp; char *dp, *ep; + memset(&outsname, 0, sizeof(outsname)); strncpy(outsname.sysname, ostype, sizeof(outsname.sysname)); strncpy(outsname.nodename, hostname, sizeof(outsname.nodename)); strncpy(outsname.release, osrelease, sizeof(outsname.release)); Index: src/sys/compat/common/kern_info_43.c diff -u src/sys/compat/common/kern_info_43.c:1.35 src/sys/compat/common/kern_info_43.c:1.35.22.1 --- src/sys/compat/common/kern_info_43.c:1.35 Mon Mar 24 20:08:08 2014 +++ src/sys/compat/common/kern_info_43.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_info_43.c,v 1.35 2014/03/24 20:08:08 christos Exp $ */ +/* $NetBSD: kern_info_43.c,v 1.35.22.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1982, 1986, 1991, 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_info_43.c,v 1.35 2014/03/24 20:08:08 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_info_43.c,v 1.35.22.1 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -233,6 +233,8 @@ compat_43_sys_getkerninfo(struct lwp *l, break; } + memset(&ksi, 0, sizeof(ksi)); + #define COPY(fld) \ ksi.fld = us - (u_long) usi; \ if ((error = copyoutstr(fld, us, 1024, &len)) != 0)\ Index: src/sys/compat/common/kern_resource_43.c diff -u src/sys/compat/common/kern_resource_43.c:1.21 src/sys/compat/common/kern_resource_43.c:1.21.90.1 --- src/sys/compat/common/kern_resource_43.c:1.21 Thu Dec 20 23:02:44 2007 +++ src/sys/compat/common/kern_resource_43.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_resource_43.c,v 1.21 2007/12/20 23:02:44 dsl Exp $ */ +/* $NetBSD: kern_resource_43.c,v 1.21.90.1 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 1982, 1986, 1991, 1993 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_resource_43.c,v 1.21 2007/12/20 23:02:44 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_resource_43.c,v 1.21.90.1 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -63,6 +63,7 @@ compat_43_sys_getrlimit(struct lwp *l, c if ((u_int)which >= RLIM_NLIMITS) return (EINVAL); + memset(&olim, 0, sizeof(olim)); olim.rlim_cur = p->p_rlimit[which].rlim_cur; if (olim.rlim_cur == -1) olim.rlim_cur = 0x7fffffff; Index: src/sys/compat/common/kern_sig_13.c diff -u src/sys/compat/common/kern_sig_13.c:1.20 src/sys/compat/common/kern_sig_13.c:1.20.50.1 --- src/sys/compat/common/kern_sig_13.c:1.20 Wed Jan 19 10:21:16 2011 +++ src/sys/compat/common/kern_sig_13.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sig_13.c,v 1.20 2011/01/19 10:21:16 tsutsui Exp $ */ +/* $NetBSD: kern_sig_13.c,v 1.20.50.1 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_sig_13.c,v 1.20 2011/01/19 10:21:16 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sig_13.c,v 1.20.50.1 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -51,6 +51,7 @@ void native_sigset13_to_sigset(const sigset13_t *oss, sigset_t *ss) { + memset(ss, 0, sizeof(*ss)); ss->__bits[0] = *oss; ss->__bits[1] = 0; ss->__bits[2] = 0; @@ -68,6 +69,7 @@ void native_sigaction13_to_sigaction(const struct sigaction13 *osa, struct sigaction *sa) { + memset(sa, 0, sizeof(*sa)); sa->sa_handler = osa->osa_handler; native_sigset13_to_sigset(&osa->osa_mask, &sa->sa_mask); sa->sa_flags = osa->osa_flags; @@ -77,6 +79,7 @@ void native_sigaction_to_sigaction13(const struct sigaction *sa, struct sigaction13 *osa) { + memset(osa, 0, sizeof(*osa)); osa->osa_handler = sa->sa_handler; native_sigset_to_sigset13(&sa->sa_mask, &osa->osa_mask); osa->osa_flags = sa->sa_flags; Index: src/sys/compat/common/kern_sig_43.c diff -u src/sys/compat/common/kern_sig_43.c:1.34.50.1 src/sys/compat/common/kern_sig_43.c:1.34.50.2 --- src/sys/compat/common/kern_sig_43.c:1.34.50.1 Tue Jan 21 18:12:53 2020 +++ src/sys/compat/common/kern_sig_43.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sig_43.c,v 1.34.50.1 2020/01/21 18:12:53 martin Exp $ */ +/* $NetBSD: kern_sig_43.c,v 1.34.50.2 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_sig_43.c,v 1.34.50.1 2020/01/21 18:12:53 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sig_43.c,v 1.34.50.2 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -73,6 +73,7 @@ void compat_43_sigmask_to_sigset(const int *sm, sigset_t *ss) { + memset(ss, 0, sizeof(*ss)); ss->__bits[0] = *sm; ss->__bits[1] = 0; ss->__bits[2] = 0; @@ -89,6 +90,8 @@ compat_43_sigset_to_sigmask(const sigset void compat_43_sigvec_to_sigaction(const struct sigvec *sv, struct sigaction *sa) { + + memset(sa, 0, sizeof(*sa)); sa->sa_handler = sv->sv_handler; compat_43_sigmask_to_sigset(&sv->sv_mask, &sa->sa_mask); sa->sa_flags = sv->sv_flags ^ SA_RESTART; @@ -97,6 +100,8 @@ compat_43_sigvec_to_sigaction(const stru void compat_43_sigaction_to_sigvec(const struct sigaction *sa, struct sigvec *sv) { + + memset(sv, 0, sizeof(*sv)); sv->sv_handler = sa->sa_handler; compat_43_sigset_to_sigmask(&sa->sa_mask, &sv->sv_mask); sv->sv_flags = sa->sa_flags ^ SA_RESTART; @@ -105,6 +110,7 @@ compat_43_sigaction_to_sigvec(const stru void compat_43_sigstack_to_sigaltstack(const struct sigstack *ss, struct sigaltstack *sa) { + memset(sa, 0, sizeof(*sa)); sa->ss_sp = ss->ss_sp; sa->ss_size = SIGSTKSZ; /* Use the recommended size */ sa->ss_flags = 0; Index: src/sys/compat/common/kern_time_50.c diff -u src/sys/compat/common/kern_time_50.c:1.31 src/sys/compat/common/kern_time_50.c:1.31.10.1 --- src/sys/compat/common/kern_time_50.c:1.31 Fri Mar 11 18:32:29 2016 +++ src/sys/compat/common/kern_time_50.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_time_50.c,v 1.31 2016/03/11 18:32:29 christos Exp $ */ +/* $NetBSD: kern_time_50.c,v 1.31.10.1 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.31 2016/03/11 18:32:29 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.31.10.1 2023/06/21 21:04:01 martin Exp $"); #ifdef _KERNEL_OPT #include "opt_aio.h" @@ -191,6 +191,7 @@ compat_50_sys_gettimeofday(struct lwp *l * NetBSD has no kernel notion of time zone, so we just * fake up a timezone struct and return it if demanded. */ + memset(&tzfake, 0, sizeof(tzfake)); tzfake.tz_minuteswest = 0; tzfake.tz_dsttime = 0; error = copyout(&tzfake, SCARG(uap, tzp), sizeof(tzfake)); @@ -425,6 +426,7 @@ compat_50_sys_mq_timedreceive(struct lwp void rusage_to_rusage50(const struct rusage *ru, struct rusage50 *ru50) { + memset(ru50, 0, sizeof(*ru50)); (void)memcpy(&ru50->ru_first, &ru->ru_first, (char *)&ru50->ru_last - (char *)&ru50->ru_first + sizeof(ru50->ru_last)); Index: src/sys/compat/common/vfs_syscalls_12.c diff -u src/sys/compat/common/vfs_syscalls_12.c:1.33.8.2 src/sys/compat/common/vfs_syscalls_12.c:1.33.8.3 --- src/sys/compat/common/vfs_syscalls_12.c:1.33.8.2 Sun Dec 10 09:36:36 2017 +++ src/sys/compat/common/vfs_syscalls_12.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_syscalls_12.c,v 1.33.8.2 2017/12/10 09:36:36 snj Exp $ */ +/* $NetBSD: vfs_syscalls_12.c,v 1.33.8.3 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1989, 1993 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_12.c,v 1.33.8.2 2017/12/10 09:36:36 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_12.c,v 1.33.8.3 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -65,6 +65,7 @@ void compat_12_stat_conv(const struct stat *st, struct stat12 *ost) { + memset(ost, 0, sizeof(*ost)); ost->st_dev = st->st_dev; ost->st_ino = st->st_ino; ost->st_mode = st->st_mode & 0xffff; @@ -183,6 +184,7 @@ again: off += reclen; continue; } + memset(&idb, 0, sizeof(idb)); if (bdp->d_namlen >= sizeof(idb.d_name)) idb.d_namlen = sizeof(idb.d_name) - 1; else Index: src/sys/compat/common/vfs_syscalls_30.c diff -u src/sys/compat/common/vfs_syscalls_30.c:1.36.12.1 src/sys/compat/common/vfs_syscalls_30.c:1.36.12.2 --- src/sys/compat/common/vfs_syscalls_30.c:1.36.12.1 Sun Aug 15 10:03:46 2021 +++ src/sys/compat/common/vfs_syscalls_30.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_syscalls_30.c,v 1.36.12.1 2021/08/15 10:03:46 martin Exp $ */ +/* $NetBSD: vfs_syscalls_30.c,v 1.36.12.2 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 2005, 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_30.c,v 1.36.12.1 2021/08/15 10:03:46 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_30.c,v 1.36.12.2 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -252,6 +252,7 @@ again: error = EINVAL; goto out; } + memset(&idb, 0, sizeof(idb)); if (bdp->d_namlen >= sizeof(idb.d_name)) idb.d_namlen = sizeof(idb.d_name) - 1; else @@ -341,6 +342,7 @@ compat_30_sys_getfh(struct lwp *l, const sz = sizeof(struct compat_30_fhandle); error = vfs_composefh(vp, (void *)&fh, &sz); vput(vp); + CTASSERT(FHANDLE_SIZE_COMPAT == sizeof(struct compat_30_fhandle)); if (sz != FHANDLE_SIZE_COMPAT) { error = EINVAL; } Index: src/sys/compat/common/vfs_syscalls_43.c diff -u src/sys/compat/common/vfs_syscalls_43.c:1.59.8.3 src/sys/compat/common/vfs_syscalls_43.c:1.59.8.4 --- src/sys/compat/common/vfs_syscalls_43.c:1.59.8.3 Sun Aug 15 10:03:46 2021 +++ src/sys/compat/common/vfs_syscalls_43.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_syscalls_43.c,v 1.59.8.3 2021/08/15 10:03:46 martin Exp $ */ +/* $NetBSD: vfs_syscalls_43.c,v 1.59.8.4 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1989, 1993 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.59.8.3 2021/08/15 10:03:46 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.59.8.4 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -456,6 +456,7 @@ again: off += reclen; continue; } + memset(&idb, 0, sizeof(idb)); if (bdp->d_namlen >= sizeof(idb.d_name)) idb.d_namlen = sizeof(idb.d_name) - 1; else Index: src/sys/compat/freebsd/freebsd_misc.c diff -u src/sys/compat/freebsd/freebsd_misc.c:1.33 src/sys/compat/freebsd/freebsd_misc.c:1.33.12.1 --- src/sys/compat/freebsd/freebsd_misc.c:1.33 Sun Nov 9 18:30:38 2014 +++ src/sys/compat/freebsd/freebsd_misc.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: freebsd_misc.c,v 1.33 2014/11/09 18:30:38 maxv Exp $ */ +/* $NetBSD: freebsd_misc.c,v 1.33.12.1 2023/06/21 21:04:02 martin Exp $ */ /* * Copyright (c) 1995 Frank van der Linden @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: freebsd_misc.c,v 1.33 2014/11/09 18:30:38 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: freebsd_misc.c,v 1.33.12.1 2023/06/21 21:04:02 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -183,6 +183,7 @@ freebsd_sys_sigaction4(struct lwp *l, co if (error) return (error); if (SCARG(uap, osa)) { + memset(&oesa, 0, sizeof(oesa)); oesa.freebsd_sa_handler = obsa.sa_handler; oesa.freebsd_sa_mask = obsa.sa_mask; oesa.freebsd_sa_flags = obsa.sa_flags; Index: src/sys/compat/freebsd/freebsd_sched.c diff -u src/sys/compat/freebsd/freebsd_sched.c:1.22 src/sys/compat/freebsd/freebsd_sched.c:1.22.20.1 --- src/sys/compat/freebsd/freebsd_sched.c:1.22 Sat Jun 28 11:06:31 2014 +++ src/sys/compat/freebsd/freebsd_sched.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: freebsd_sched.c,v 1.22 2014/06/28 11:06:31 maxv Exp $ */ +/* $NetBSD: freebsd_sched.c,v 1.22.20.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: freebsd_sched.c,v 1.22 2014/06/28 11:06:31 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: freebsd_sched.c,v 1.22.20.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -122,6 +122,7 @@ sched_native2freebsd(int native_policy, if (native_params != NULL && freebsd_params != NULL) { /* XXX: Needs adjustment to do a proper conversion. */ + memset(freebsd_params, 0, sizeof(*freebsd_params)); freebsd_params->sched_priority = native_params->sched_priority; } Index: src/sys/compat/linux/arch/alpha/linux_machdep.c diff -u src/sys/compat/linux/arch/alpha/linux_machdep.c:1.50 src/sys/compat/linux/arch/alpha/linux_machdep.c:1.50.12.1 --- src/sys/compat/linux/arch/alpha/linux_machdep.c:1.50 Sun Nov 9 17:48:07 2014 +++ src/sys/compat/linux/arch/alpha/linux_machdep.c Wed Jun 21 21:04:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.50 2014/11/09 17:48:07 maxv Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.50.12.1 2023/06/21 21:04:03 martin Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50 2014/11/09 17:48:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50.12.1 2023/06/21 21:04:03 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -139,6 +139,8 @@ setup_linux_rt_sigframe(struct trapframe sig, &onstack, sfp); #endif /* DEBUG */ + memset(&sigframe, 0, sizeof(sigframe)); + /* * Build the signal context to be used by sigreturn. */ @@ -232,6 +234,8 @@ void setup_linux_sigframe(struct trapfra sig, &onstack, sfp); #endif /* DEBUG */ + memset(&sigframe, 0, sizeof(sigframe)); + /* * Build the signal context to be used by sigreturn. */ Index: src/sys/compat/linux/arch/amd64/linux_machdep.c diff -u src/sys/compat/linux/arch/amd64/linux_machdep.c:1.51.6.3 src/sys/compat/linux/arch/amd64/linux_machdep.c:1.51.6.4 --- src/sys/compat/linux/arch/amd64/linux_machdep.c:1.51.6.3 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/linux/arch/amd64/linux_machdep.c Wed Jun 21 21:04:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.51.6.3 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.51.6.4 2023/06/21 21:04:03 martin Exp $ */ /*- * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved. @@ -33,7 +33,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.51.6.3 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.51.6.4 2023/06/21 21:04:03 martin Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -225,6 +225,7 @@ linux_sendsig(const ksiginfo_t *ksi, con if (fpsp != NULL) { size_t fp_size = sizeof fpregs; /* The netbsd and linux structures both match the fxsave data */ + memset(&fpregs, 0, sizeof(fpregs)); (void)process_read_fpregs(l, &fpregs, &fp_size); error = copyout(&fpregs, fpsp, sizeof(*fpsp)); } Index: src/sys/compat/linux/arch/arm/linux_machdep.c diff -u src/sys/compat/linux/arch/arm/linux_machdep.c:1.32 src/sys/compat/linux/arch/arm/linux_machdep.c:1.32.12.1 --- src/sys/compat/linux/arch/arm/linux_machdep.c:1.32 Sun Nov 9 17:48:07 2014 +++ src/sys/compat/linux/arch/arm/linux_machdep.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.32 2014/11/09 17:48:07 maxv Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.32.12.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 2000 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.32 2014/11/09 17:48:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.32.12.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -107,6 +107,8 @@ linux_sendsig(const ksiginfo_t *ksi, con /* Build stack frame for signal trampoline. */ + memset(&frame, 0, sizeof(frame)); + /* Save register context. */ frame.sf_sc.sc_r0 = tf->tf_r0; frame.sf_sc.sc_r1 = tf->tf_r1; Index: src/sys/compat/linux/arch/arm/linux_ptrace.c diff -u src/sys/compat/linux/arch/arm/linux_ptrace.c:1.19.10.1 src/sys/compat/linux/arch/arm/linux_ptrace.c:1.19.10.2 --- src/sys/compat/linux/arch/arm/linux_ptrace.c:1.19.10.1 Thu Apr 12 13:42:49 2018 +++ src/sys/compat/linux/arch/arm/linux_ptrace.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_ptrace.c,v 1.19.10.1 2018/04/12 13:42:49 martin Exp $ */ +/* $NetBSD: linux_ptrace.c,v 1.19.10.2 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.19.10.1 2018/04/12 13:42:49 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.19.10.2 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -180,6 +180,7 @@ linux_sys_ptrace_arch(struct lwp *l, con if (error) { break; } + memset(linux_regs, 0, sizeof(*linux_regs)); memcpy(linux_regs->uregs, regs->r, 13 * sizeof(register_t)); linux_regs->uregs[LINUX_REG_SP] = regs->r_sp; linux_regs->uregs[LINUX_REG_LR] = regs->r_lr; Index: src/sys/compat/linux/arch/i386/linux_machdep.c diff -u src/sys/compat/linux/arch/i386/linux_machdep.c:1.163 src/sys/compat/linux/arch/i386/linux_machdep.c:1.163.6.1 --- src/sys/compat/linux/arch/i386/linux_machdep.c:1.163 Sun Feb 5 10:42:22 2017 +++ src/sys/compat/linux/arch/i386/linux_machdep.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.163 2017/02/05 10:42:22 maxv Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.163.6.1 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 1995, 2000, 2008, 2009 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.163 2017/02/05 10:42:22 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.163.6.1 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_vm86.h" @@ -264,6 +264,8 @@ linux_rt_sendsig(const ksiginfo_t *ksi, onstack, fp, sig, tf->tf_eip, ((struct pcb *)lwp_getpcb(l))->pcb_cr2)); + memset(&frame, 0, sizeof(frame)); + /* Build stack frame for signal trampoline. */ frame.sf_handler = catcher; frame.sf_sig = native_to_linux_signo[sig]; @@ -341,6 +343,8 @@ linux_old_sendsig(const ksiginfo_t *ksi, onstack, fp, sig, tf->tf_eip, ((struct pcb *)lwp_getpcb(l))->pcb_cr2)); + memset(&frame, 0, sizeof(frame)); + /* Build stack frame for signal trampoline. */ frame.sf_handler = catcher; frame.sf_sig = native_to_linux_signo[sig]; @@ -866,6 +870,7 @@ linux_machdepioctl(struct lwp *l, const com = VT_OPENQRY; break; case LINUX_VT_GETMODE: + memset(&lvt, 0, sizeof(lvt)); error = fp->f_ops->fo_ioctl(fp, VT_GETMODE, &lvt); if (error != 0) goto out; @@ -961,6 +966,7 @@ linux_machdepioctl(struct lwp *l, const sectors = label.d_nsectors; } if (com == LINUX_HDIO_GETGEO) { + memset(&hdg, 0, sizeof(hdg)); hdg.start = start; hdg.heads = heads; hdg.cylinders = cylinders; @@ -968,6 +974,7 @@ linux_machdepioctl(struct lwp *l, const error = copyout(&hdg, SCARG(uap, data), sizeof hdg); goto out; } else { + memset(&hdg_big, 0, sizeof(hdg_big)); hdg_big.start = start; hdg_big.heads = heads; hdg_big.cylinders = cylinders; Index: src/sys/compat/linux/arch/i386/linux_ptrace.c diff -u src/sys/compat/linux/arch/i386/linux_ptrace.c:1.31.10.1 src/sys/compat/linux/arch/i386/linux_ptrace.c:1.31.10.2 --- src/sys/compat/linux/arch/i386/linux_ptrace.c:1.31.10.1 Thu Apr 12 13:42:48 2018 +++ src/sys/compat/linux/arch/i386/linux_ptrace.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_ptrace.c,v 1.31.10.1 2018/04/12 13:42:48 martin Exp $ */ +/* $NetBSD: linux_ptrace.c,v 1.31.10.2 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.31.10.1 2018/04/12 13:42:48 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.31.10.2 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -223,6 +223,7 @@ linux_sys_ptrace_arch(struct lwp *l, con if (error) { break; } + memset(linux_regs, 0, sizeof(*linux_regs)); linux_regs->ebx = regs->r_ebx; linux_regs->ecx = regs->r_ecx; linux_regs->edx = regs->r_edx; Index: src/sys/compat/linux/arch/m68k/linux_machdep.c diff -u src/sys/compat/linux/arch/m68k/linux_machdep.c:1.42 src/sys/compat/linux/arch/m68k/linux_machdep.c:1.42.52.1 --- src/sys/compat/linux/arch/m68k/linux_machdep.c:1.42 Wed Jul 7 01:30:34 2010 +++ src/sys/compat/linux/arch/m68k/linux_machdep.c Wed Jun 21 21:04:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.42 2010/07/07 01:30:34 chs Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.42.52.1 2023/06/21 21:04:03 martin Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.42 2010/07/07 01:30:34 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.42.52.1 2023/06/21 21:04:03 martin Exp $"); #define COMPAT_LINUX 1 @@ -118,6 +118,8 @@ setup_linux_sigframe(struct frame *frame p->p_pid, sig, &ft, fp, &fp->sf_c.c_sc, ft); #endif + memset(&kf, 0, sizeof(kf)); + /* Build stack frame. */ kf.sf_psigtramp = fp->sf_sigtramp; /* return addr for handler */ kf.sf_signum = native_to_linux_signo[sig]; @@ -280,6 +282,8 @@ setup_linux_rt_sigframe(struct frame *fr p->p_pid, sig, &ft, fp, &fp->sf_uc, ft); #endif + memset(&kf, 0, sizeof(kf)); + /* Build stack frame. */ kf.sf_psigtramp = fp->sf_sigtramp; /* return addr for handler */ kf.sf_signum = native_to_linux_signo[sig]; Index: src/sys/compat/linux/arch/mips/linux_machdep.c diff -u src/sys/compat/linux/arch/mips/linux_machdep.c:1.43 src/sys/compat/linux/arch/mips/linux_machdep.c:1.43.12.1 --- src/sys/compat/linux/arch/mips/linux_machdep.c:1.43 Sun Nov 9 17:48:07 2014 +++ src/sys/compat/linux/arch/mips/linux_machdep.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.43 2014/11/09 17:48:07 maxv Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.43.12.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 2000, 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.43 2014/11/09 17:48:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.43.12.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -401,6 +401,7 @@ linux_sys_new_uname(struct lwp *l, const } */ *uap = v; struct linux_utsname luts; + memset(&luts, 0, sizeof(luts)); strlcpy(luts.l_sysname, linux_sysname, sizeof(luts.l_sysname)); strlcpy(luts.l_nodename, hostname, sizeof(luts.l_nodename)); strlcpy(luts.l_release, "2.4.0", sizeof(luts.l_release)); Index: src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c diff -u src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c:1.24 src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c:1.24.32.1 --- src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c:1.24 Tue Feb 21 18:10:00 2012 +++ src/sys/compat/linux/arch/powerpc/linux_exec_powerpc.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_exec_powerpc.c,v 1.24 2012/02/21 18:10:00 rjs Exp $ */ +/* $NetBSD: linux_exec_powerpc.c,v 1.24.32.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_exec_powerpc.c,v 1.24 2012/02/21 18:10:00 rjs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_exec_powerpc.c,v 1.24.32.1 2023/06/21 21:04:02 martin Exp $"); #define ELFSIZE 32 @@ -93,7 +93,7 @@ ELFNAME2(linux,copyargs)(struct lwp *l, & ~LINUX_SHIFT); #endif - memset(ai, 0, sizeof(AuxInfo) * LINUX_ELF_AUX_ENTRIES); + memset(ai, 0, sizeof(ai)); a = ai; Index: src/sys/compat/linux/arch/powerpc/linux_machdep.c diff -u src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.50 src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.50.2.1 --- src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.50 Wed May 3 00:23:42 2017 +++ src/sys/compat/linux/arch/powerpc/linux_machdep.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_machdep.c,v 1.50 2017/05/03 00:23:42 chs Exp $ */ +/* $NetBSD: linux_machdep.c,v 1.50.2.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 2000, 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50 2017/05/03 00:23:42 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.50.2.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -162,6 +162,7 @@ linux_sendsig(const ksiginfo_t *ksi, con * * Save register context. */ + memset(&linux_regs, 0, sizeof(linux_regs)); for (i = 0; i < 32; i++) linux_regs.lgpr[i] = tf->tf_fixreg[i]; linux_regs.lnip = tf->tf_srr0; Index: src/sys/compat/linux/arch/powerpc/linux_ptrace.c diff -u src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.29.10.1 src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.29.10.2 --- src/sys/compat/linux/arch/powerpc/linux_ptrace.c:1.29.10.1 Thu Apr 12 13:42:49 2018 +++ src/sys/compat/linux/arch/powerpc/linux_ptrace.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_ptrace.c,v 1.29.10.1 2018/04/12 13:42:49 martin Exp $ */ +/* $NetBSD: linux_ptrace.c,v 1.29.10.2 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1999, 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.29.10.1 2018/04/12 13:42:49 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_ptrace.c,v 1.29.10.2 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -200,6 +200,7 @@ linux_sys_ptrace_arch(struct lwp *l, con if (error) { break; } + memset(linux_regs, 0, sizeof(*linux_regs)); for (i = 0; i <= 31; i++) { linux_regs->lgpr[i] = regs->fixreg[i]; } @@ -309,7 +310,7 @@ linux_sys_ptrace_arch(struct lwp *l, con break; } error = copyout (retval, (void *)SCARG(uap, data), - sizeof(retval)); + sizeof(*retval)); *retval = SCARG(uap, data); break; Index: src/sys/compat/linux/common/linux_cdrom.c diff -u src/sys/compat/linux/common/linux_cdrom.c:1.27 src/sys/compat/linux/common/linux_cdrom.c:1.27.80.1 --- src/sys/compat/linux/common/linux_cdrom.c:1.27 Mon Apr 28 20:23:43 2008 +++ src/sys/compat/linux/common/linux_cdrom.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_cdrom.c,v 1.27 2008/04/28 20:23:43 martin Exp $ */ +/* $NetBSD: linux_cdrom.c,v 1.27.80.1 2023/06/21 21:04:02 martin Exp $ */ /* * Copyright (c) 1997, 2008 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_cdrom.c,v 1.27 2008/04/28 20:23:43 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_cdrom.c,v 1.27.80.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -186,6 +186,7 @@ linux_ioctl_cdrom(struct lwp *l, const s if (error) break; + memset(&l_tochdr, 0, sizeof(l_tochdr)); l_tochdr.cdth_trk0 = t_header.starting_track; l_tochdr.cdth_trk1 = t_header.ending_track; @@ -238,6 +239,7 @@ linux_ioctl_cdrom(struct lwp *l, const s if (error) break; + memset(&l_volctrl, 0, sizeof(l_volctrl)); l_volctrl.channel0 = t_vol.vol[0]; l_volctrl.channel1 = t_vol.vol[1]; l_volctrl.channel2 = t_vol.vol[2]; Index: src/sys/compat/linux/common/linux_fdio.c diff -u src/sys/compat/linux/common/linux_fdio.c:1.13 src/sys/compat/linux/common/linux_fdio.c:1.13.84.1 --- src/sys/compat/linux/common/linux_fdio.c:1.13 Fri Mar 21 21:54:58 2008 +++ src/sys/compat/linux/common/linux_fdio.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_fdio.c,v 1.13 2008/03/21 21:54:58 ad Exp $ */ +/* $NetBSD: linux_fdio.c,v 1.13.84.1 2023/06/21 21:04:02 martin Exp $ */ /* * Copyright (c) 2000 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_fdio.c,v 1.13 2008/03/21 21:54:58 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_fdio.c,v 1.13.84.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -107,6 +107,7 @@ linux_ioctl_fdio(struct lwp *l, const st error = ioctlf(fp, FDIOCGETFORMAT, &fparams); if (error != 0) break; + memset(&lflop, 0, sizeof(lflop)); lflop.size = fparams.ncyl * fparams.nspt * fparams.ntrk; lflop.sect = fparams.nspt; lflop.head = fparams.ntrk; Index: src/sys/compat/linux/common/linux_file.c diff -u src/sys/compat/linux/common/linux_file.c:1.115 src/sys/compat/linux/common/linux_file.c:1.115.10.1 --- src/sys/compat/linux/common/linux_file.c:1.115 Sun Mar 1 13:19:39 2015 +++ src/sys/compat/linux/common/linux_file.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_file.c,v 1.115 2015/03/01 13:19:39 njoly Exp $ */ +/* $NetBSD: linux_file.c,v 1.115.10.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.115 2015/03/01 13:19:39 njoly Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.115.10.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -445,6 +445,7 @@ static void bsd_to_linux_stat(struct stat *bsp, struct linux_stat *lsp) { + memset(lsp, 0, sizeof(*lsp)); lsp->lst_dev = linux_fakedev(bsp->st_dev, 0); lsp->lst_ino = bsp->st_ino; lsp->lst_mode = (linux_mode_t)bsp->st_mode; Index: src/sys/compat/linux/common/linux_hdio.c diff -u src/sys/compat/linux/common/linux_hdio.c:1.17 src/sys/compat/linux/common/linux_hdio.c:1.17.10.1 --- src/sys/compat/linux/common/linux_hdio.c:1.17 Tue Dec 8 20:36:14 2015 +++ src/sys/compat/linux/common/linux_hdio.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_hdio.c,v 1.17 2015/12/08 20:36:14 christos Exp $ */ +/* $NetBSD: linux_hdio.c,v 1.17.10.1 2023/06/21 21:04:02 martin Exp $ */ /* * Copyright (c) 2000 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_hdio.c,v 1.17 2015/12/08 20:36:14 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_hdio.c,v 1.17.10.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -113,6 +113,7 @@ linux_ioctl_hdio(struct lwp *l, const st error = error1; break; } + memset(&hdg, 0, sizeof(hdg)); hdg.start = error1 != 0 ? pi.pi_offset : 0; hdg.heads = label.d_ntracks; hdg.cylinders = label.d_ncylinders; @@ -130,6 +131,7 @@ linux_ioctl_hdio(struct lwp *l, const st error = error1; break; } + memset(&hdg_big, 0, sizeof(hdg_big)); hdg_big.start = error1 != 0 ? pi.pi_offset : 0; hdg_big.heads = label.d_ntracks; hdg_big.cylinders = label.d_ncylinders; Index: src/sys/compat/linux/common/linux_misc.c diff -u src/sys/compat/linux/common/linux_misc.c:1.238.2.2 src/sys/compat/linux/common/linux_misc.c:1.238.2.3 --- src/sys/compat/linux/common/linux_misc.c:1.238.2.2 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/linux/common/linux_misc.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_misc.c,v 1.238.2.2 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: linux_misc.c,v 1.238.2.3 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998, 1999, 2008 The NetBSD Foundation, Inc. @@ -57,7 +57,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_misc.c,v 1.238.2.2 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_misc.c,v 1.238.2.3 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -628,6 +628,8 @@ linux_sys_times(struct lwp *l, const str struct linux_tms ltms; struct rusage ru; + memset(<ms, 0, sizeof(ltms)); + mutex_enter(p->p_lock); calcru(p, &ru.ru_utime, &ru.ru_stime, NULL, NULL); ltms.ltms_utime = CONVTCK(ru.ru_utime); @@ -1392,6 +1394,7 @@ linux_sys_getrlimit(struct lwp *l, const if (which < 0) return -which; + memset(&orl, 0, sizeof(orl)); bsd_to_linux_rlimit(&orl, &l->l_proc->p_rlimit[which]); return copyout(&orl, SCARG(uap, rlp), sizeof(orl)); Index: src/sys/compat/linux/common/linux_mtio.c diff -u src/sys/compat/linux/common/linux_mtio.c:1.7 src/sys/compat/linux/common/linux_mtio.c:1.7.84.1 --- src/sys/compat/linux/common/linux_mtio.c:1.7 Fri Mar 21 21:54:58 2008 +++ src/sys/compat/linux/common/linux_mtio.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_mtio.c,v 1.7 2008/03/21 21:54:58 ad Exp $ */ +/* $NetBSD: linux_mtio.c,v 1.7.84.1 2023/06/21 21:04:02 martin Exp $ */ /* * Copyright (c) 2005 Soren S. Jorvang. All rights reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_mtio.c,v 1.7 2008/03/21 21:54:58 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_mtio.c,v 1.7.84.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -106,6 +106,7 @@ linux_ioctl_mtio(struct lwp *l, const st error = ioctlf(fp, MTIOCTOP, &mt); break; case LINUX_MTIOCGET: + memset(&lmtget, 0, sizeof(lmtget)); lmtget.mt_type = LINUX_MT_ISUNKNOWN; lmtget.mt_resid = 0; lmtget.mt_dsreg = 0; Index: src/sys/compat/linux/common/linux_oldolduname.c diff -u src/sys/compat/linux/common/linux_oldolduname.c:1.66 src/sys/compat/linux/common/linux_oldolduname.c:1.66.80.1 --- src/sys/compat/linux/common/linux_oldolduname.c:1.66 Mon Apr 28 20:23:43 2008 +++ src/sys/compat/linux/common/linux_oldolduname.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_oldolduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $ */ +/* $NetBSD: linux_oldolduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_oldolduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_oldolduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -58,6 +58,8 @@ linux_sys_oldolduname(struct lwp *l, con } */ struct linux_oldoldutsname luts; + memset(&luts, 0, sizeof(luts)); + strlcpy(luts.l_sysname, linux_sysname, sizeof(luts.l_sysname)); strlcpy(luts.l_nodename, hostname, sizeof(luts.l_nodename)); strlcpy(luts.l_release, linux_release, sizeof(luts.l_release)); Index: src/sys/compat/linux/common/linux_olduname.c diff -u src/sys/compat/linux/common/linux_olduname.c:1.66 src/sys/compat/linux/common/linux_olduname.c:1.66.80.1 --- src/sys/compat/linux/common/linux_olduname.c:1.66 Mon Apr 28 20:23:43 2008 +++ src/sys/compat/linux/common/linux_olduname.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_olduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $ */ +/* $NetBSD: linux_olduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_olduname.c,v 1.66 2008/04/28 20:23:43 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_olduname.c,v 1.66.80.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -61,6 +61,8 @@ linux_sys_olduname(struct lwp *l, const } */ struct linux_oldutsname luts; + memset(&luts, 0, sizeof(luts)); + strlcpy(luts.l_sysname, linux_sysname, sizeof(luts.l_sysname)); strlcpy(luts.l_nodename, hostname, sizeof(luts.l_nodename)); strlcpy(luts.l_release, linux_release, sizeof(luts.l_release)); Index: src/sys/compat/linux/common/linux_sched.c diff -u src/sys/compat/linux/common/linux_sched.c:1.69 src/sys/compat/linux/common/linux_sched.c:1.69.4.1 --- src/sys/compat/linux/common/linux_sched.c:1.69 Fri Apr 21 15:10:34 2017 +++ src/sys/compat/linux/common/linux_sched.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_sched.c,v 1.69 2017/04/21 15:10:34 christos Exp $ */ +/* $NetBSD: linux_sched.c,v 1.69.4.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sched.c,v 1.69 2017/04/21 15:10:34 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sched.c,v 1.69.4.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -381,6 +381,8 @@ sched_native2linux(int native_policy, st KASSERT(prio <= SCHED_PRI_MAX); KASSERT(linux_params != NULL); + memset(linux_params, 0, sizeof(*linux_params)); + DPRINTF(("%s: native: policy %d, priority %d\n", __func__, native_policy, prio)); Index: src/sys/compat/linux/common/linux_signal.c diff -u src/sys/compat/linux/common/linux_signal.c:1.79.6.1 src/sys/compat/linux/common/linux_signal.c:1.79.6.2 --- src/sys/compat/linux/common/linux_signal.c:1.79.6.1 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/linux/common/linux_signal.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_signal.c,v 1.79.6.1 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: linux_signal.c,v 1.79.6.2 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.79.6.1 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.79.6.2 2023/06/21 21:04:02 martin Exp $"); #define COMPAT_LINUX 1 @@ -274,6 +274,8 @@ linux_to_native_sigflags(const unsigned void linux_old_to_native_sigaction(struct sigaction *bsa, const struct linux_old_sigaction *lsa) { + + memset(bsa, 0, sizeof(*bsa)); bsa->sa_handler = lsa->linux_sa_handler; linux_old_to_native_sigset(&bsa->sa_mask, &lsa->linux_sa_mask); bsa->sa_flags = linux_to_native_sigflags(lsa->linux_sa_flags); @@ -282,6 +284,8 @@ linux_old_to_native_sigaction(struct sig void native_to_linux_old_sigaction(struct linux_old_sigaction *lsa, const struct sigaction *bsa) { + + memset(lsa, 0, sizeof(*lsa)); lsa->linux_sa_handler = bsa->sa_handler; native_to_linux_old_sigset(&lsa->linux_sa_mask, &bsa->sa_mask); lsa->linux_sa_flags = native_to_linux_sigflags(bsa->sa_flags); @@ -294,6 +298,8 @@ native_to_linux_old_sigaction(struct lin void linux_to_native_sigaction(struct sigaction *bsa, const struct linux_sigaction *lsa) { + + memset(bsa, 0, sizeof(*bsa)); bsa->sa_handler = lsa->linux_sa_handler; linux_to_native_sigset(&bsa->sa_mask, &lsa->linux_sa_mask); bsa->sa_flags = linux_to_native_sigflags(lsa->linux_sa_flags); @@ -302,6 +308,8 @@ linux_to_native_sigaction(struct sigacti void native_to_linux_sigaction(struct linux_sigaction *lsa, const struct sigaction *bsa) { + + memset(lsa, 0, sizeof(*lsa)); lsa->linux_sa_handler = bsa->sa_handler; native_to_linux_sigset(&lsa->linux_sa_mask, &bsa->sa_mask); lsa->linux_sa_flags = native_to_linux_sigflags(bsa->sa_flags); Index: src/sys/compat/linux/common/linux_socket.c diff -u src/sys/compat/linux/common/linux_socket.c:1.138.6.6 src/sys/compat/linux/common/linux_socket.c:1.138.6.7 --- src/sys/compat/linux/common/linux_socket.c:1.138.6.6 Fri Jul 17 15:28:08 2020 +++ src/sys/compat/linux/common/linux_socket.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.138.6.6 2020/07/17 15:28:08 martin Exp $ */ +/* $NetBSD: linux_socket.c,v 1.138.6.7 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.138.6.6 2020/07/17 15:28:08 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.138.6.7 2023/06/21 21:04:02 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_inet.h" @@ -455,6 +455,7 @@ linux_sys_sendto(struct lwp *l, const st static void linux_to_bsd_msghdr(const struct linux_msghdr *lmsg, struct msghdr *bmsg) { + memset(bmsg, 0, sizeof(*bmsg)); bmsg->msg_name = lmsg->msg_name; bmsg->msg_namelen = lmsg->msg_namelen; bmsg->msg_iov = lmsg->msg_iov; @@ -467,6 +468,7 @@ linux_to_bsd_msghdr(const struct linux_m static void bsd_to_linux_msghdr(const struct msghdr *bmsg, struct linux_msghdr *lmsg) { + memset(lmsg, 0, sizeof(*lmsg)); lmsg->msg_name = bmsg->msg_name; lmsg->msg_namelen = bmsg->msg_namelen; lmsg->msg_iov = bmsg->msg_iov; @@ -715,6 +717,7 @@ linux_copyout_msg_control(struct lwp *l, * 1. different values for level/type on some archs * 2. different alignment of CMSG_DATA on some archs */ + memset(&linux_cmsg, 0, sizeof(linux_cmsg)); linux_cmsg.cmsg_len = cmsg->cmsg_len - LINUX_CMSG_ALIGN_DELTA; linux_cmsg.cmsg_level = cmsg->cmsg_level; linux_cmsg.cmsg_type = cmsg->cmsg_type; Index: src/sys/compat/linux/common/linux_time.c diff -u src/sys/compat/linux/common/linux_time.c:1.37.22.1 src/sys/compat/linux/common/linux_time.c:1.37.22.2 --- src/sys/compat/linux/common/linux_time.c:1.37.22.1 Tue Aug 8 15:59:04 2017 +++ src/sys/compat/linux/common/linux_time.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_time.c,v 1.37.22.1 2017/08/08 15:59:04 martin Exp $ */ +/* $NetBSD: linux_time.c,v 1.37.22.2 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_time.c,v 1.37.22.1 2017/08/08 15:59:04 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_time.c,v 1.37.22.2 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/ucred.h> @@ -117,6 +117,7 @@ linux_sys_settimeofday(struct lwp *l, co void native_to_linux_timespec(struct linux_timespec *ltp, struct timespec *ntp) { + memset(ltp, 0, sizeof(*ltp)); ltp->tv_sec = ntp->tv_sec; ltp->tv_nsec = ntp->tv_nsec; } @@ -124,6 +125,7 @@ native_to_linux_timespec(struct linux_ti void linux_to_native_timespec(struct timespec *ntp, struct linux_timespec *ltp) { + memset(ntp, 0, sizeof(*ntp)); ntp->tv_sec = ltp->tv_sec; ntp->tv_nsec = ltp->tv_nsec; } Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.2 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.3 --- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.2 Fri Apr 5 07:48:05 2019 +++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c Wed Jun 21 21:04:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_machdep.c,v 1.38.6.2 2019/04/05 07:48:05 martin Exp $ */ +/* $NetBSD: linux32_machdep.c,v 1.38.6.3 2023/06/21 21:04:03 martin Exp $ */ /*- * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.38.6.2 2019/04/05 07:48:05 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.38.6.3 2023/06/21 21:04:03 martin Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -122,6 +122,8 @@ linux32_old_sendsig(const ksiginfo_t *ks DPRINTF(("old: onstack = %d, fp = %p sig = %d rip = 0x%lx\n", onstack, fp, sig, tf->tf_rip)); + memset(&frame, 0, sizeof(frame)); + /* Build stack frame for signal trampoline. */ NETBSD32PTR32(frame.sf_handler, catcher); frame.sf_sig = native_to_linux32_signo[sig]; Index: src/sys/compat/linux32/common/linux32_exec_elf32.c diff -u src/sys/compat/linux32/common/linux32_exec_elf32.c:1.19 src/sys/compat/linux32/common/linux32_exec_elf32.c:1.19.8.1 --- src/sys/compat/linux32/common/linux32_exec_elf32.c:1.19 Sat Aug 6 15:13:13 2016 +++ src/sys/compat/linux32/common/linux32_exec_elf32.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_exec_elf32.c,v 1.19 2016/08/06 15:13:13 maxv Exp $ */ +/* $NetBSD: linux32_exec_elf32.c,v 1.19.8.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1995, 1998, 2000, 2001,2006 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_exec_elf32.c,v 1.19 2016/08/06 15:13:13 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_exec_elf32.c,v 1.19.8.1 2023/06/21 21:04:02 martin Exp $"); #define ELFSIZE 32 @@ -227,6 +227,8 @@ linux32_elf32_copyargs(struct lwp *l, st *stackp += len; #if 0 + memset(&esd, 0, sizeof(esd)); + memcpy(esd.kernel_vsyscall, linux32_kernel_vsyscall, sizeof(linux32_kernel_vsyscall)); Index: src/sys/compat/linux32/common/linux32_resource.c diff -u src/sys/compat/linux32/common/linux32_resource.c:1.11 src/sys/compat/linux32/common/linux32_resource.c:1.11.30.1 --- src/sys/compat/linux32/common/linux32_resource.c:1.11 Sat Sep 22 22:34:03 2012 +++ src/sys/compat/linux32/common/linux32_resource.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_resource.c,v 1.11 2012/09/22 22:34:03 joerg Exp $ */ +/* $NetBSD: linux32_resource.c,v 1.11.30.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. @@ -33,7 +33,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_resource.c,v 1.11 2012/09/22 22:34:03 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_resource.c,v 1.11.30.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -87,6 +87,7 @@ linux32_sys_getrlimit(struct lwp *l, con if (which < 0) return -which; + memset(&orl, 0, sizeof(orl)); bsd_to_linux_rlimit(&orl, &l->l_proc->p_rlimit[which]); return copyout(&orl, SCARG_P32(uap, rlp), sizeof(orl)); Index: src/sys/compat/linux32/common/linux32_signal.c diff -u src/sys/compat/linux32/common/linux32_signal.c:1.18.10.1 src/sys/compat/linux32/common/linux32_signal.c:1.18.10.2 --- src/sys/compat/linux32/common/linux32_signal.c:1.18.10.1 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/linux32/common/linux32_signal.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_signal.c,v 1.18.10.1 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: linux32_signal.c,v 1.18.10.2 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.18.10.1 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.18.10.2 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/ucred.h> @@ -215,6 +215,7 @@ linux32_to_native_sigflags(const unsigne void linux32_to_native_sigaction(struct sigaction *bsa, const struct linux32_sigaction *lsa) { + memset(bsa, 0, sizeof(*bsa)); bsa->sa_handler = NETBSD32PTR64(lsa->linux_sa_handler); linux32_to_native_sigset(&bsa->sa_mask, &lsa->linux_sa_mask); bsa->sa_flags = linux32_to_native_sigflags(lsa->linux_sa_flags); @@ -223,6 +224,7 @@ linux32_to_native_sigaction(struct sigac void native_to_linux32_sigaction(struct linux32_sigaction *lsa, const struct sigaction *bsa) { + memset(lsa, 0, sizeof(*lsa)); NETBSD32PTR32(lsa->linux_sa_handler, bsa->sa_handler); native_to_linux32_sigset(&lsa->linux_sa_mask, &bsa->sa_mask); lsa->linux_sa_flags = native_to_linux32_sigflags(bsa->sa_flags); Index: src/sys/compat/linux32/common/linux32_time.c diff -u src/sys/compat/linux32/common/linux32_time.c:1.37 src/sys/compat/linux32/common/linux32_time.c:1.37.30.1 --- src/sys/compat/linux32/common/linux32_time.c:1.37 Tue Oct 2 01:44:28 2012 +++ src/sys/compat/linux32/common/linux32_time.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_time.c,v 1.37 2012/10/02 01:44:28 christos Exp $ */ +/* $NetBSD: linux32_time.c,v 1.37.30.1 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. @@ -33,7 +33,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_time.c,v 1.37 2012/10/02 01:44:28 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_time.c,v 1.37.30.1 2023/06/21 21:04:02 martin Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -166,6 +166,8 @@ linux32_sys_times(struct lwp *l, const s struct linux32_tms ltms32; struct rusage ru; + memset(<ms32, 0, sizeof(ltms32)); + mutex_enter(p->p_lock); calcru(p, &ru.ru_utime, &ru.ru_stime, NULL, NULL); ltms32.ltms32_utime = CONVTCK(ru.ru_utime); @@ -237,6 +239,8 @@ linux32_sys_utime(struct lwp *l, const s void native_to_linux32_timespec(struct linux32_timespec *ltp, struct timespec *ntp) { + + memset(ltp, 0, sizeof(*ltp)); ltp->tv_sec = ntp->tv_sec; ltp->tv_nsec = ntp->tv_nsec; } @@ -244,6 +248,8 @@ native_to_linux32_timespec(struct linux3 void linux32_to_native_timespec(struct timespec *ntp, struct linux32_timespec *ltp) { + + memset(ntp, 0, sizeof(*ntp)); ntp->tv_sec = ltp->tv_sec; ntp->tv_nsec = ltp->tv_nsec; } Index: src/sys/compat/netbsd32/netbsd32_compat_12.c diff -u src/sys/compat/netbsd32/netbsd32_compat_12.c:1.33 src/sys/compat/netbsd32/netbsd32_compat_12.c:1.33.30.1 --- src/sys/compat/netbsd32/netbsd32_compat_12.c:1.33 Mon Dec 10 02:21:58 2012 +++ src/sys/compat/netbsd32/netbsd32_compat_12.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_12.c,v 1.33 2012/12/10 02:21:58 chs Exp $ */ +/* $NetBSD: netbsd32_compat_12.c,v 1.33.30.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_12.c,v 1.33 2012/12/10 02:21:58 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_12.c,v 1.33.30.1 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -59,6 +59,7 @@ static void netbsd32_stat12_to_netbsd32(struct stat12 *sp12, struct netbsd32_stat12 *sp32) { + memset(sp32, 0, sizeof(*sp32)); sp32->st_dev = sp12->st_dev; sp32->st_ino = sp12->st_ino; sp32->st_mode = sp12->st_mode; Index: src/sys/compat/netbsd32/netbsd32_compat_20.c diff -u src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36.4.1 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36.4.2 --- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36.4.1 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_20.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_20.c,v 1.36.4.1 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: netbsd32_compat_20.c,v 1.36.4.2 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.36.4.1 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.36.4.2 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -53,6 +53,8 @@ static inline void compat_20_netbsd32_fr static inline void compat_20_netbsd32_from_statvfs(struct statvfs *sbp, struct netbsd32_statfs *sb32p) { + + memset(sb32p, 0, sizeof(*sb32p)); sb32p->f_type = 0; /* XXX Put an actual value? */ sb32p->f_flags = sbp->f_flag; sb32p->f_bsize = (netbsd32_long)sbp->f_bsize; Index: src/sys/compat/netbsd32/netbsd32_compat_43.c diff -u src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54.8.1 src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54.8.2 --- src/sys/compat/netbsd32/netbsd32_compat_43.c:1.54.8.1 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_43.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_43.c,v 1.54.8.1 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: netbsd32_compat_43.c,v 1.54.8.2 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.54.8.1 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.54.8.2 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_43.h" @@ -644,6 +644,7 @@ compat_43_netbsd32_osigvec(struct lwp *l return error; if (SCARG_P32(uap, osv)) { + memset(&sv32, 0, sizeof(sv32)); NETBSD32PTR32(sv32.sv_handler, osa.sa_handler); sv32.sv_mask = osa.sa_mask.__bits[0]; sv32.sv_flags = osa.sa_flags ^ SA_RESTART; @@ -702,6 +703,7 @@ compat_43_netbsd32_osigstack(struct lwp return error; if (SCARG_P32(uap, oss)) { + memset(&ss32, 0, sizeof(ss32)); NETBSD32PTR32(ss32.ss_sp, osa.ss_sp); ss32.ss_onstack = (osa.ss_flags & SS_ONSTACK) != 0; error = copyout(&ss32, SCARG_P32(uap, oss), sizeof(ss32)); Index: src/sys/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32.10.1 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32.10.2 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32.10.1 Tue Jan 21 18:12:54 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.32.10.1 2020/01/21 18:12:54 martin Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.32.10.2 2023/06/21 21:04:01 martin Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.32.10.1 2020/01/21 18:12:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.32.10.2 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -163,6 +163,7 @@ compat_50_netbsd32_gettimeofday(struct l * NetBSD has no kernel notion of time zone, so we just * fake up a timezone struct and return it if demanded. */ + memset(&tzfake, 0, sizeof(tzfake)); tzfake.tz_minuteswest = 0; tzfake.tz_dsttime = 0; error = copyout(&tzfake, SCARG_P32(uap, tzp), sizeof(tzfake)); @@ -244,6 +245,8 @@ compat_50_netbsd32_adjtime(struct lwp *l return (error); if (SCARG_P32(uap, olddelta)) { + memset(&atv, 0, sizeof(atv)); + mutex_spin_enter(&timecounter_lock); atv.tv_sec = time_adjtime / 1000000; atv.tv_usec = time_adjtime % 1000000; @@ -390,6 +393,7 @@ compat_50_netbsd32_timer_settime(struct return error; if (ovp) { + memset(&its32, 0, sizeof(its32)); netbsd32_from_timespec50(&ovp->it_interval, &its32.it_interval); netbsd32_from_timespec50(&ovp->it_value, &its32.it_value); return copyout(&its32, SCARG_P32(uap, ovalue), sizeof(its32)); @@ -412,6 +416,8 @@ compat_50_netbsd32_timer_gettime(struct &its)) != 0) return error; + memset(&its32, 0, sizeof(its32)); + netbsd32_from_timespec50(&its.it_interval, &its32.it_interval); netbsd32_from_timespec50(&its.it_value, &its32.it_value); Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.31.8.4 src/sys/compat/netbsd32/netbsd32_conv.h:1.31.8.5 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.31.8.4 Wed Jun 21 20:38:35 2023 +++ src/sys/compat/netbsd32/netbsd32_conv.h Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.31.8.4 2023/06/21 20:38:35 martin Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.31.8.5 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -63,6 +63,7 @@ netbsd32_from_timeval50(const struct tim struct netbsd32_timeval50 *tv32) { + memset(tv32, 0, sizeof(*tv32)); tv32->tv_sec = (netbsd32_time50_t)tv->tv_sec; tv32->tv_usec = (netbsd32_long)tv->tv_usec; } @@ -72,6 +73,7 @@ netbsd32_from_timeval(const struct timev struct netbsd32_timeval *tv32) { + memset(tv32, 0, sizeof(*tv32)); tv32->tv_sec = (netbsd32_time_t)tv->tv_sec; tv32->tv_usec = tv->tv_usec; } @@ -81,6 +83,7 @@ netbsd32_to_timeval50(const struct netbs struct timeval *tv) { + memset(tv, 0, sizeof(*tv)); tv->tv_sec = (time_t)tv32->tv_sec; tv->tv_usec = tv32->tv_usec; } @@ -90,6 +93,7 @@ netbsd32_to_timeval(const struct netbsd3 struct timeval *tv) { + memset(tv, 0, sizeof(*tv)); tv->tv_sec = (time_t)tv32->tv_sec; tv->tv_usec = tv32->tv_usec; } @@ -99,6 +103,7 @@ netbsd32_from_itimerval50(const struct i struct netbsd32_itimerval50 *itv32) { + memset(itv32, 0, sizeof(*itv32)); netbsd32_from_timeval50(&itv->it_interval, &itv32->it_interval); netbsd32_from_timeval50(&itv->it_value, @@ -110,6 +115,7 @@ netbsd32_from_itimerval(const struct iti struct netbsd32_itimerval *itv32) { + memset(itv32, 0, sizeof(*itv32)); netbsd32_from_timeval(&itv->it_interval, &itv32->it_interval); netbsd32_from_timeval(&itv->it_value, @@ -121,6 +127,7 @@ netbsd32_to_itimerval50(const struct net struct itimerval *itv) { + memset(itv, 0, sizeof(*itv)); netbsd32_to_timeval50(&itv32->it_interval, &itv->it_interval); netbsd32_to_timeval50(&itv32->it_value, &itv->it_value); } @@ -130,6 +137,7 @@ netbsd32_to_itimerval(const struct netbs struct itimerval *itv) { + memset(itv, 0, sizeof(*itv)); netbsd32_to_timeval(&itv32->it_interval, &itv->it_interval); netbsd32_to_timeval(&itv32->it_value, &itv->it_value); } @@ -139,6 +147,7 @@ netbsd32_to_timespec50(const struct netb struct timespec *p) { + memset(p, 0, sizeof(*p)); p->tv_sec = (time_t)s32p->tv_sec; p->tv_nsec = (long)s32p->tv_nsec; } @@ -148,6 +157,7 @@ netbsd32_to_timespec(const struct netbsd struct timespec *p) { + memset(p, 0, sizeof(*p)); p->tv_sec = (time_t)s32p->tv_sec; p->tv_nsec = (long)s32p->tv_nsec; } @@ -157,6 +167,7 @@ netbsd32_from_timespec50(const struct ti struct netbsd32_timespec50 *s32p) { + memset(s32p, 0, sizeof(*s32p)); s32p->tv_sec = (netbsd32_time50_t)p->tv_sec; s32p->tv_nsec = (netbsd32_long)p->tv_nsec; } @@ -166,6 +177,7 @@ netbsd32_from_timespec(const struct time struct netbsd32_timespec *s32p) { + memset(s32p, 0, sizeof(*s32p)); s32p->tv_sec = (netbsd32_time_t)p->tv_sec; s32p->tv_nsec = (netbsd32_long)p->tv_nsec; } @@ -175,6 +187,7 @@ netbsd32_from_rusage(const struct rusage struct netbsd32_rusage *ru32p) { + memset(ru32p, 0, sizeof(*ru32p)); netbsd32_from_timeval(&rup->ru_utime, &ru32p->ru_utime); netbsd32_from_timeval(&rup->ru_stime, &ru32p->ru_stime); #define C(var) ru32p->var = (netbsd32_long)rup->var @@ -200,6 +213,7 @@ netbsd32_to_rusage(const struct netbsd32 struct rusage *rup) { + memset(rup, 0, sizeof(*rup)); netbsd32_to_timeval(&ru32p->ru_utime, &rup->ru_utime); netbsd32_to_timeval(&ru32p->ru_stime, &rup->ru_stime); #define C(var) rup->var = (long)ru32p->var @@ -225,6 +239,7 @@ netbsd32_from_rusage50(const struct rusa struct netbsd32_rusage50 *ru32p) { + memset(ru32p, 0, sizeof(*ru32p)); netbsd32_from_timeval50(&rup->ru_utime, &ru32p->ru_utime); netbsd32_from_timeval50(&rup->ru_stime, &ru32p->ru_stime); #define C(var) ru32p->var = (netbsd32_long)rup->var @@ -259,6 +274,7 @@ netbsd32_to_iovecin(const struct netbsd3 * each field separately. I'm doing the latter to reduce * the number of MALLOC()s. */ + memset(iovp, 0, sizeof(*iovp)); total_iov_len = 0; for (i = 0; i < len; i++, iovp++, iov32p++) { if ((error = copyin(&iov32p->iov_base, &iov_base, sizeof(iov_base)))) @@ -289,6 +305,7 @@ static __inline void netbsd32_to_msghdr(const struct netbsd32_msghdr *mhp32, struct msghdr *mhp) { + memset(mhp, 0, sizeof(*mhp)); mhp->msg_name = NETBSD32PTR64(mhp32->msg_name); mhp->msg_namelen = mhp32->msg_namelen; mhp->msg_iovlen = (size_t)mhp32->msg_iovlen; @@ -302,6 +319,7 @@ static __inline void netbsd32_from_msghdr(struct netbsd32_msghdr *mhp32, const struct msghdr *mhp) { + memset(mhp32, 0, sizeof(*mhp32)); NETBSD32PTR32(mhp32->msg_name, mhp->msg_name); mhp32->msg_namelen = mhp->msg_namelen; mhp32->msg_iovlen = mhp->msg_iovlen; @@ -313,6 +331,8 @@ netbsd32_from_msghdr(struct netbsd32_msg static __inline void netbsd32_from_statvfs(const struct statvfs *sbp, struct netbsd32_statvfs *sb32p) { + + memset(sb32p, 0, sizeof(*sb32p)); sb32p->f_flag = sbp->f_flag; sb32p->f_bsize = (netbsd32_u_long)sbp->f_bsize; sb32p->f_frsize = (netbsd32_u_long)sbp->f_frsize; @@ -354,6 +374,7 @@ static __inline void netbsd32_from_timex(const struct timex *txp, struct netbsd32_timex *tx32p) { + memset(tx32p, 0, sizeof(*tx32p)); tx32p->modes = txp->modes; tx32p->offset = (netbsd32_long)txp->offset; tx32p->freq = (netbsd32_long)txp->freq; @@ -377,6 +398,7 @@ static __inline void netbsd32_to_timex(const struct netbsd32_timex *tx32p, struct timex *txp) { + memset(txp, 0, sizeof(*txp)); txp->modes = tx32p->modes; txp->offset = (long)tx32p->offset; txp->freq = (long)tx32p->freq; @@ -399,6 +421,7 @@ netbsd32_to_timex(const struct netbsd32_ static __inline void netbsd32_from___stat13(const struct stat *sbp, struct netbsd32_stat13 *sb32p) { + memset(sb32p, 0, sizeof *sb32p); sb32p->st_dev = (uint32_t)sbp->st_dev; sb32p->st_ino = sbp->st_ino; @@ -425,6 +448,7 @@ netbsd32_from___stat13(const struct stat static __inline void netbsd32_from___stat50(const struct stat *sbp, struct netbsd32_stat50 *sb32p) { + memset(sb32p, 0, sizeof *sb32p); sb32p->st_dev = (uint32_t)sbp->st_dev; sb32p->st_ino = sbp->st_ino; @@ -451,6 +475,7 @@ netbsd32_from___stat50(const struct stat static __inline void netbsd32_from_stat(const struct stat *sbp, struct netbsd32_stat *sb32p) { + memset(sb32p, 0, sizeof *sb32p); sb32p->st_dev = sbp->st_dev; sb32p->st_ino = sbp->st_ino; @@ -479,6 +504,7 @@ netbsd32_to_ipc_perm(const struct netbsd struct ipc_perm *ipp) { + memset(ipp, 0, sizeof(*ipp)); ipp->cuid = ip32p->cuid; ipp->cgid = ip32p->cgid; ipp->uid = ip32p->uid; @@ -507,6 +533,7 @@ static __inline void netbsd32_to_msg(const struct netbsd32_msg *m32p, struct msg *mp) { + memset(mp, 0, sizeof(*mp)); mp->msg_next = NETBSD32PTR64(m32p->msg_next); mp->msg_type = (long)m32p->msg_type; mp->msg_ts = m32p->msg_ts; @@ -529,6 +556,7 @@ netbsd32_to_msqid_ds50(const struct netb struct msqid_ds *dsp) { + memset(dsp, 0, sizeof(*dsp)); netbsd32_to_ipc_perm(&ds32p->msg_perm, &dsp->msg_perm); dsp->_msg_cbytes = (u_long)ds32p->_msg_cbytes; dsp->msg_qnum = (u_long)ds32p->msg_qnum; @@ -545,6 +573,7 @@ netbsd32_to_msqid_ds(const struct netbsd struct msqid_ds *dsp) { + memset(dsp, 0, sizeof(*dsp)); netbsd32_to_ipc_perm(&ds32p->msg_perm, &dsp->msg_perm); dsp->_msg_cbytes = (u_long)ds32p->_msg_cbytes; dsp->msg_qnum = (u_long)ds32p->msg_qnum; @@ -595,6 +624,7 @@ netbsd32_to_shmid_ds50(const struct netb struct shmid_ds *dsp) { + memset(dsp, 0, sizeof(*dsp)); netbsd32_to_ipc_perm(&ds32p->shm_perm, &dsp->shm_perm); dsp->shm_segsz = ds32p->shm_segsz; dsp->shm_lpid = ds32p->shm_lpid; @@ -610,6 +640,7 @@ netbsd32_to_shmid_ds(const struct netbsd struct shmid_ds *dsp) { + memset(dsp, 0, sizeof(*dsp)); netbsd32_to_ipc_perm(&ds32p->shm_perm, &dsp->shm_perm); dsp->shm_segsz = ds32p->shm_segsz; dsp->shm_lpid = ds32p->shm_lpid; @@ -657,6 +688,7 @@ netbsd32_to_semid_ds50(const struct netb struct semid_ds *dsp) { + memset(dsp, 0, sizeof(*dsp)); netbsd32_to_ipc_perm(&s32dsp->sem_perm, &dsp->sem_perm); dsp->sem_nsems = (time_t)s32dsp->sem_nsems; dsp->sem_otime = (time_t)s32dsp->sem_otime; @@ -668,6 +700,7 @@ netbsd32_to_semid_ds(const struct netbsd struct semid_ds *dsp) { + memset(dsp, 0, sizeof(*dsp)); netbsd32_to_ipc_perm(&s32dsp->sem_perm, &dsp->sem_perm); dsp->sem_nsems = s32dsp->sem_nsems; dsp->sem_otime = s32dsp->sem_otime; @@ -703,6 +736,7 @@ netbsd32_from_loadavg(struct netbsd32_lo const struct loadavg *av) { + memset(av32, 0, sizeof(*av32)); av32->ldavg[0] = av->ldavg[0]; av32->ldavg[1] = av->ldavg[1]; av32->ldavg[2] = av->ldavg[2]; @@ -712,6 +746,8 @@ netbsd32_from_loadavg(struct netbsd32_lo static __inline void netbsd32_to_kevent(struct netbsd32_kevent *ke32, struct kevent *ke) { + + memset(ke, 0, sizeof(*ke)); ke->ident = ke32->ident; ke->filter = ke32->filter; ke->flags = ke32->flags; @@ -723,6 +759,8 @@ netbsd32_to_kevent(struct netbsd32_keven static __inline void netbsd32_from_kevent(struct kevent *ke, struct netbsd32_kevent *ke32) { + + memset(ke32, 0, sizeof(*ke32)); ke32->ident = ke->ident; ke32->filter = ke->filter; ke32->flags = ke->flags; @@ -734,6 +772,8 @@ netbsd32_from_kevent(struct kevent *ke, static __inline void netbsd32_to_sigevent(const struct netbsd32_sigevent *ev32, struct sigevent *ev) { + + memset(ev, 0, sizeof(*ev)); ev->sigev_notify = ev32->sigev_notify; ev->sigev_signo = ev32->sigev_signo; /* @@ -796,6 +836,7 @@ netbsd32_copyout_plistref(netbsd32_point { struct netbsd32_plistref n32plist; + memset(&n32plist, 0, sizeof(n32plist)); NETBSD32PTR32(n32plist.pref_plist, p->pref_plist); n32plist.pref_len = p->pref_len; return copyout(&n32plist, NETBSD32PTR64(n32p), @@ -806,6 +847,8 @@ static __inline void netbsd32_to_mq_attr(const struct netbsd32_mq_attr *a32, struct mq_attr *attr) { + + memset(attr, 0, sizeof(*attr)); attr->mq_flags = a32->mq_flags; attr->mq_maxmsg = a32->mq_maxmsg; attr->mq_msgsize = a32->mq_msgsize; @@ -816,6 +859,8 @@ static __inline void netbsd32_from_mq_attr(const struct mq_attr *attr, struct netbsd32_mq_attr *a32) { + + memset(a32, 0, sizeof(*a32)); a32->mq_flags = attr->mq_flags; a32->mq_maxmsg = attr->mq_maxmsg; a32->mq_msgsize = attr->mq_msgsize; Index: src/sys/compat/netbsd32/netbsd32_nfssvc.c diff -u src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.5 src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.5.8.1 --- src/sys/compat/netbsd32/netbsd32_nfssvc.c:1.5 Sat Oct 15 06:50:13 2016 +++ src/sys/compat/netbsd32/netbsd32_nfssvc.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_nfssvc.c,v 1.5 2016/10/15 06:50:13 skrll Exp $ */ +/* $NetBSD: netbsd32_nfssvc.c,v 1.5.8.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 2015 Matthew R. Green @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_nfssvc.c,v 1.5 2016/10/15 06:50:13 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_nfssvc.c,v 1.5.8.1 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_nfs.h" @@ -123,6 +123,7 @@ nfssvc32_nsd_out(void *argp, const struc { struct netbsd32_nfsd_srvargs args32; + memset(&args32, 0, sizeof(args32)); NETBSD32PTR32(args32.nsd_nfsd, nsd->nsd_nfsd); args32.nsd_uid = nsd->nsd_uid; args32.nsd_haddr = nsd->nsd_haddr; Index: src/sys/compat/netbsd32/netbsd32_ptrace.c diff -u src/sys/compat/netbsd32/netbsd32_ptrace.c:1.4.6.1 src/sys/compat/netbsd32/netbsd32_ptrace.c:1.4.6.2 --- src/sys/compat/netbsd32/netbsd32_ptrace.c:1.4.6.1 Thu Apr 12 13:42:49 2018 +++ src/sys/compat/netbsd32/netbsd32_ptrace.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ptrace.c,v 1.4.6.1 2018/04/12 13:42:49 martin Exp $ */ +/* $NetBSD: netbsd32_ptrace.c,v 1.4.6.2 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ptrace.c,v 1.4.6.1 2018/04/12 13:42:49 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ptrace.c,v 1.4.6.2 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_ptrace.h" @@ -81,6 +81,7 @@ netbsd32_copyout_piod(const struct ptrac if (len != 0 && sizeof(piod32) != len) return EINVAL; + memset(&piod32, 0, sizeof(piod32)); piod32.piod_op = piod->piod_op; NETBSD32PTR32(piod32.piod_offs, piod->piod_offs); NETBSD32PTR32(piod32.piod_addr, piod->piod_addr); @@ -112,6 +113,7 @@ netbsd32_copyout_siginfo(const struct pt if (sizeof(psi32) != len) return EINVAL; + memset(&psi32, 0, sizeof(psi32)); psi32.psi_lwpid = psi->psi_lwpid; netbsd32_si_to_si32(&psi32.psi_siginfo, &psi->psi_siginfo); return copyout(&psi32, addr, sizeof(psi32)); Index: src/sys/compat/netbsd32/netbsd32_signal.c diff -u src/sys/compat/netbsd32/netbsd32_signal.c:1.43.8.1 src/sys/compat/netbsd32/netbsd32_signal.c:1.43.8.2 --- src/sys/compat/netbsd32/netbsd32_signal.c:1.43.8.1 Thu Apr 12 13:42:49 2018 +++ src/sys/compat/netbsd32/netbsd32_signal.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_signal.c,v 1.43.8.1 2018/04/12 13:42:49 martin Exp $ */ +/* $NetBSD: netbsd32_signal.c,v 1.43.8.2 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.43.8.1 2018/04/12 13:42:49 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.43.8.2 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_ktrace.h" @@ -86,6 +86,7 @@ netbsd32_sigaction(struct lwp *l, const return (error); if (SCARG_P32(uap, osa)) { + memset(&sa32, 0, sizeof(sa32)); NETBSD32PTR32(sa32.netbsd32_sa_handler, osa.sa_handler); sa32.netbsd32_sa_mask = osa.sa_mask.__bits[0]; sa32.netbsd32_sa_flags = osa.sa_flags; @@ -135,6 +136,7 @@ netbsd32___sigaction14(struct lwp *l, co if (error) return (error); if (SCARG_P32(uap, osa)) { + memset(&sa32, 0, sizeof(sa32)); NETBSD32PTR32(sa32.netbsd32_sa_handler, osa.sa_handler); sa32.netbsd32_sa_mask = osa.sa_mask; sa32.netbsd32_sa_flags = osa.sa_flags; @@ -175,6 +177,7 @@ netbsd32___sigaction_sigtramp(struct lwp if (error) return (error); if (SCARG_P32(uap, osa)) { + memset(&sa32, 0, sizeof(sa32)); NETBSD32PTR32(sa32.netbsd32_sa_handler, osa.sa_handler); sa32.netbsd32_sa_mask = osa.sa_mask; sa32.netbsd32_sa_flags = osa.sa_flags; Index: src/sys/compat/netbsd32/netbsd32_time.c diff -u src/sys/compat/netbsd32/netbsd32_time.c:1.49 src/sys/compat/netbsd32/netbsd32_time.c:1.49.6.1 --- src/sys/compat/netbsd32/netbsd32_time.c:1.49 Sun Feb 26 10:26:19 2017 +++ src/sys/compat/netbsd32/netbsd32_time.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_time.c,v 1.49 2017/02/26 10:26:19 njoly Exp $ */ +/* $NetBSD: netbsd32_time.c,v 1.49.6.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.49 2017/02/26 10:26:19 njoly Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.49.6.1 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -257,6 +257,7 @@ netbsd32___gettimeofday50(struct lwp *l, * NetBSD has no kernel notion of time zone, so we just * fake up a timezone struct and return it if demanded. */ + memset(&tzfake, 0, sizeof(tzfake)); tzfake.tz_minuteswest = 0; tzfake.tz_dsttime = 0; error = copyout(&tzfake, SCARG_P32(uap, tzp), sizeof(tzfake)); @@ -317,6 +318,7 @@ netbsd32___adjtime50(struct lwp *l, cons return (error); if (SCARG_P32(uap, olddelta)) { + memset(&atv, 0, sizeof(atv)); atv.tv_sec = time_adjtime / 1000000; atv.tv_usec = time_adjtime % 1000000; if (atv.tv_usec < 0) { @@ -528,6 +530,7 @@ netbsd32___timer_settime50(struct lwp *l return error; if (ovp) { + memset(&its32, 0, sizeof(its32)); netbsd32_from_timespec(&ovp->it_interval, &its32.it_interval); netbsd32_from_timespec(&ovp->it_value, &its32.it_value); return copyout(&its32, SCARG_P32(uap, ovalue), sizeof(its32)); @@ -550,6 +553,7 @@ netbsd32___timer_gettime50(struct lwp *l &its)) != 0) return error; + memset(&its32, 0, sizeof(its32)); netbsd32_from_timespec(&its.it_interval, &its32.it_interval); netbsd32_from_timespec(&its.it_value, &its32.it_value); Index: src/sys/compat/netbsd32/netbsd32_wait.c diff -u src/sys/compat/netbsd32/netbsd32_wait.c:1.23 src/sys/compat/netbsd32/netbsd32_wait.c:1.23.8.1 --- src/sys/compat/netbsd32/netbsd32_wait.c:1.23 Fri Sep 23 14:09:39 2016 +++ src/sys/compat/netbsd32/netbsd32_wait.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_wait.c,v 1.23 2016/09/23 14:09:39 skrll Exp $ */ +/* $NetBSD: netbsd32_wait.c,v 1.23.8.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.23 2016/09/23 14:09:39 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.23.8.1 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -132,6 +132,7 @@ netbsd32_wait6(struct lwp *l, const stru if (wrup != NULL && error == 0) { struct netbsd32_wrusage wru32; + memset(&wru32, 0, sizeof(wru32)); netbsd32_from_rusage(&wrup->wru_self, &wru32.wru_self); netbsd32_from_rusage(&wrup->wru_children, &wru32.wru_children); error = copyout(&wru32, SCARG_P32(uap, wru), sizeof(wru32)); Index: src/sys/compat/ossaudio/ossaudio.c diff -u src/sys/compat/ossaudio/ossaudio.c:1.70.6.3 src/sys/compat/ossaudio/ossaudio.c:1.70.6.4 --- src/sys/compat/ossaudio/ossaudio.c:1.70.6.3 Wed Apr 22 18:15:12 2020 +++ src/sys/compat/ossaudio/ossaudio.c Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ossaudio.c,v 1.70.6.3 2020/04/22 18:15:12 martin Exp $ */ +/* $NetBSD: ossaudio.c,v 1.70.6.4 2023/06/21 21:04:02 martin Exp $ */ /*- * Copyright (c) 1997, 2008 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ossaudio.c,v 1.70.6.3 2020/04/22 18:15:12 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ossaudio.c,v 1.70.6.4 2023/06/21 21:04:02 martin Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -618,6 +618,7 @@ oss_ioctl_audio(struct lwp *l, const str goto out; } setblocksize(fp, &tmpinfo); + memset(&bufinfo, 0, sizeof(bufinfo)); bufinfo.fragsize = tmpinfo.blocksize; bufinfo.fragments = tmpinfo.hiwat - (tmpinfo.play.seek + tmpinfo.blocksize - 1) / @@ -640,6 +641,7 @@ oss_ioctl_audio(struct lwp *l, const str goto out; } setblocksize(fp, &tmpinfo); + memset(&bufinfo, 0, sizeof(bufinfo)); bufinfo.fragsize = tmpinfo.blocksize; bufinfo.fragments = tmpinfo.record.seek / tmpinfo.blocksize; bufinfo.fragstotal = tmpinfo.hiwat; @@ -748,6 +750,7 @@ oss_ioctl_audio(struct lwp *l, const str __func__, error)); goto out; } + memset(&cntinfo, 0, sizeof(cntinfo)); cntinfo.bytes = tmpoffs.samples; cntinfo.blocks = tmpoffs.deltablks; cntinfo.ptr = tmpoffs.offset; @@ -765,6 +768,7 @@ oss_ioctl_audio(struct lwp *l, const str __func__, error)); goto out; } + memset(&cntinfo, 0, sizeof(cntinfo)); cntinfo.bytes = tmpoffs.samples; cntinfo.blocks = tmpoffs.deltablks; cntinfo.ptr = tmpoffs.offset; Index: src/sys/compat/sunos/sunos_ioctl.c diff -u src/sys/compat/sunos/sunos_ioctl.c:1.68 src/sys/compat/sunos/sunos_ioctl.c:1.68.8.1 --- src/sys/compat/sunos/sunos_ioctl.c:1.68 Sat Oct 8 15:48:07 2016 +++ src/sys/compat/sunos/sunos_ioctl.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos_ioctl.c,v 1.68 2016/10/08 15:48:07 maxv Exp $ */ +/* $NetBSD: sunos_ioctl.c,v 1.68.8.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1993 Markus Wild. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.68 2016/10/08 15:48:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.68.8.1 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -127,6 +127,8 @@ stios2btios(struct sunos_termios *st, st { u_long l, r; + memset(bt, 0, sizeof(*bt)); + l = st->c_iflag; r = ((l & 0x00000001) ? IGNBRK : 0); r |= ((l & 0x00000002) ? BRKINT : 0); @@ -248,6 +250,8 @@ btios2stios(struct termios *bt, struct s u_long l, r; int s; + memset(st, 0, sizeof(*st)); + l = bt->c_iflag; r = ((l & IGNBRK) ? 0x00000001 : 0); r |= ((l & BRKINT) ? 0x00000002 : 0); @@ -372,6 +376,8 @@ btios2stios(struct termios *bt, struct s static void stios2stio(struct sunos_termios *ts, struct sunos_termio *t) { + + memset(t, 0, sizeof(*t)); t->c_iflag = ts->c_iflag; t->c_oflag = ts->c_oflag; t->c_cflag = ts->c_cflag; @@ -383,6 +389,8 @@ stios2stio(struct sunos_termios *ts, str static void stio2stios(struct sunos_termio *t, struct sunos_termios *ts) { + + memset(ts, 0, sizeof(*ts)); ts->c_iflag = t->c_iflag; ts->c_oflag = t->c_oflag; ts->c_cflag = t->c_cflag; @@ -484,6 +492,7 @@ sunos_sys_ioctl(struct lwp *l, const str if ((error = (*ctl)(fp, TIOCGWINSZ, &ws)) != 0) break; + memset(&ss, 0, sizeof(ss)); ss.ts_row = ws.ws_row; ss.ts_col = ws.ws_col; @@ -724,6 +733,7 @@ sunos_sys_ioctl(struct lwp *l, const str if (error) break; + memset(&sunos_aui, 0, sizeof(sunos_aui)); sunos_aui.play = *(struct sunos_audio_prinfo *)&aui.play; sunos_aui.record = *(struct sunos_audio_prinfo *)&aui.record; @@ -934,6 +944,9 @@ static void sunos_to_bsd_flock(struct su static void bsd_to_sunos_flock(struct flock *iflp, struct sunos_flock *oflp) { + + memset(oflp, 0, sizeof(*oflp)); + switch (iflp->l_type) { case F_RDLCK: oflp->l_type = SUNOS_F_RDLCK; @@ -960,6 +973,9 @@ bsd_to_sunos_flock(struct flock *iflp, s static void sunos_to_bsd_flock(struct sunos_flock *iflp, struct flock *oflp) { + + memset(oflp, 0, sizeof(*oflp)); + switch (iflp->l_type) { case SUNOS_F_RDLCK: oflp->l_type = F_RDLCK; Index: src/sys/compat/sunos/sunos_misc.c diff -u src/sys/compat/sunos/sunos_misc.c:1.170.10.1 src/sys/compat/sunos/sunos_misc.c:1.170.10.2 --- src/sys/compat/sunos/sunos_misc.c:1.170.10.1 Wed Aug 9 05:12:18 2017 +++ src/sys/compat/sunos/sunos_misc.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos_misc.c,v 1.170.10.1 2017/08/09 05:12:18 snj Exp $ */ +/* $NetBSD: sunos_misc.c,v 1.170.10.2 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1992, 1993 @@ -50,7 +50,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos_misc.c,v 1.170.10.1 2017/08/09 05:12:18 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos_misc.c,v 1.170.10.2 2023/06/21 21:04:01 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -305,6 +305,7 @@ void sunos_to_native_sigset(const int, s inline void native_to_sunos_sigset(const sigset_t *ss, int *mask) { + *mask = ss->__bits[0]; } @@ -312,6 +313,7 @@ inline void sunos_to_native_sigset(const int mask, sigset_t *ss) { + memset(ss, 0, sizeof(*ss)); ss->__bits[0] = mask; ss->__bits[1] = 0; ss->__bits[2] = 0; @@ -431,6 +433,7 @@ again: off += reclen; continue; } + memset(&idb, 0, sizeof(idb)); sunos_reclen = SUNOS_RECLEN(&idb, bdp->d_namlen); if (reclen > len || resid < sunos_reclen) { /* entry too big for buffer, so just stop */ Index: src/sys/compat/sunos32/sunos32_ioctl.c diff -u src/sys/compat/sunos32/sunos32_ioctl.c:1.34 src/sys/compat/sunos32/sunos32_ioctl.c:1.34.10.1 --- src/sys/compat/sunos32/sunos32_ioctl.c:1.34 Fri Dec 11 08:10:43 2015 +++ src/sys/compat/sunos32/sunos32_ioctl.c Wed Jun 21 21:04:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos32_ioctl.c,v 1.34 2015/12/11 08:10:43 mlelstv Exp $ */ +/* $NetBSD: sunos32_ioctl.c,v 1.34.10.1 2023/06/21 21:04:03 martin Exp $ */ /* from: NetBSD: sunos_ioctl.c,v 1.35 2001/02/03 22:20:02 mrg Exp */ /* @@ -54,7 +54,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.34 2015/12/11 08:10:43 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.34.10.1 2023/06/21 21:04:03 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd32.h" @@ -163,6 +163,8 @@ stios2btios(struct sunos_termios *st, st { netbsd32_u_long l, r; + memset(bt, 0, sizeof(*bt)); + l = st->c_iflag; r = ((l & 0x00000001) ? IGNBRK : 0); r |= ((l & 0x00000002) ? BRKINT : 0); @@ -284,6 +286,8 @@ btios2stios(struct termios *bt, struct s netbsd32_u_long l, r; int s; + memset(st, 0, sizeof(*st)); + l = bt->c_iflag; r = ((l & IGNBRK) ? 0x00000001 : 0); r |= ((l & BRKINT) ? 0x00000002 : 0); @@ -408,6 +412,8 @@ btios2stios(struct termios *bt, struct s static void stios2stio(struct sunos_termios *ts, struct sunos_termio *t) { + + memset(t, 0, sizeof(*t)); t->c_iflag = ts->c_iflag; t->c_oflag = ts->c_oflag; t->c_cflag = ts->c_cflag; @@ -419,6 +425,8 @@ stios2stio(struct sunos_termios *ts, str static void stio2stios(struct sunos_termio *t, struct sunos_termios *ts) { + + memset(ts, 0, sizeof(*ts)); ts->c_iflag = t->c_iflag; ts->c_oflag = t->c_oflag; ts->c_cflag = t->c_cflag; @@ -528,6 +536,7 @@ sunos32_sys_ioctl(struct lwp *l, const s if ((error = sunos32_do_ioctl(SCARG(&bsd_ua, fd), TIOCGWINSZ, &ws, l)) != 0) return (error); + memset(&ss, 0, sizeof(ss)); ss.ts_row = ws.ws_row; ss.ts_col = ws.ws_col; @@ -756,6 +765,8 @@ sunos32_sys_ioctl(struct lwp *l, const s if (error) return error; + memset(&sunos_aui, 0, sizeof(sunos_aui)); + sunos_aui.play = *(struct sunos_audio_prinfo *)&aui.play; sunos_aui.record = *(struct sunos_audio_prinfo *)&aui.record; @@ -950,6 +961,9 @@ static void sunos_to_bsd_flock(struct su static void bsd_to_sunos_flock(struct flock *iflp, struct sunos_flock *oflp) { + + memset(oflp, 0, sizeof(*oflp)); + switch (iflp->l_type) { case F_RDLCK: oflp->l_type = SUNOS_F_RDLCK; @@ -976,6 +990,9 @@ bsd_to_sunos_flock(struct flock *iflp, s static void sunos_to_bsd_flock(struct sunos_flock *iflp, struct flock *oflp) { + + memset(oflp, 0, sizeof(*oflp)); + switch (iflp->l_type) { case SUNOS_F_RDLCK: oflp->l_type = F_RDLCK; Index: src/sys/compat/sunos32/sunos32_misc.c diff -u src/sys/compat/sunos32/sunos32_misc.c:1.77.10.1 src/sys/compat/sunos32/sunos32_misc.c:1.77.10.2 --- src/sys/compat/sunos32/sunos32_misc.c:1.77.10.1 Wed Aug 9 05:12:18 2017 +++ src/sys/compat/sunos32/sunos32_misc.c Wed Jun 21 21:04:03 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos32_misc.c,v 1.77.10.1 2017/08/09 05:12:18 snj Exp $ */ +/* $NetBSD: sunos32_misc.c,v 1.77.10.2 2023/06/21 21:04:03 martin Exp $ */ /* from :NetBSD: sunos_misc.c,v 1.107 2000/12/01 19:25:10 jdolecek Exp */ /* @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos32_misc.c,v 1.77.10.1 2017/08/09 05:12:18 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos32_misc.c,v 1.77.10.2 2023/06/21 21:04:03 martin Exp $"); #define COMPAT_SUNOS 1 @@ -161,6 +161,7 @@ sunos32_sigvec_from_sigaction( { /*XXX*/ extern void compat_43_sigset_to_sigmask(const sigset_t *, int *); + memset(sv, 0, sizeof(*sv)); NETBSD32PTR32(sv->sv_handler, sa->sa_handler); compat_43_sigset_to_sigmask(&sa->sa_mask, &sv->sv_mask); sv->sv_flags = sa->sa_flags ^ SA_RESTART; @@ -541,6 +542,7 @@ void sunos_to_native_sigset(const int, s inline void native_to_sunos_sigset(const sigset_t *ss, int *mask) { + *mask = ss->__bits[0]; } @@ -548,6 +550,7 @@ inline void sunos_to_native_sigset(const int mask, sigset_t *ss) { + memset(ss, 0, sizeof(*ss)); ss->__bits[0] = mask; ss->__bits[1] = 0; ss->__bits[2] = 0; @@ -676,6 +679,7 @@ again: off += reclen; continue; } + memset(&idb, 0, sizeof(idb)); sunos_reclen = SUNOS32_RECLEN(&idb, bdp->d_namlen); if (reclen > len || resid < sunos_reclen) { /* entry too big for buffer, so just stop */ Index: src/sys/compat/sys/time_types.h diff -u src/sys/compat/sys/time_types.h:1.1.58.1 src/sys/compat/sys/time_types.h:1.1.58.2 --- src/sys/compat/sys/time_types.h:1.1.58.1 Thu Jan 3 09:00:01 2019 +++ src/sys/compat/sys/time_types.h Wed Jun 21 21:04:02 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: time_types.h,v 1.1.58.1 2019/01/03 09:00:01 martin Exp $ */ +/* $NetBSD: time_types.h,v 1.1.58.2 2023/06/21 21:04:02 martin Exp $ */ /* * Copyright (c) 1982, 1986, 1993 @@ -72,58 +72,68 @@ struct itimerspec50 { struct timespec50 it_value; }; -static __inline void timeval50_to_timeval(const struct timeval50 *ts50, - struct timeval *ts) +static __inline void +timeval50_to_timeval(const struct timeval50 *ts50, struct timeval *ts) { + memset(ts, 0, sizeof(*ts)); ts->tv_sec = ts50->tv_sec; ts->tv_usec = (suseconds_t)ts50->tv_usec; } -static __inline void timeval_to_timeval50(const struct timeval *ts, - struct timeval50 *ts50) +static __inline void +timeval_to_timeval50(const struct timeval *ts, struct timeval50 *ts50) { + memset(ts50, 0, sizeof(*ts50)); ts50->tv_sec = (long)ts->tv_sec; ts50->tv_usec = ts->tv_usec; } -static __inline void timespec50_to_timespec(const struct timespec50 *ts50, - struct timespec *ts) +static __inline void +timespec50_to_timespec(const struct timespec50 *ts50, struct timespec *ts) { + memset(ts, 0, sizeof(*ts)); ts->tv_sec = ts50->tv_sec; ts->tv_nsec = ts50->tv_nsec; } -static __inline void timespec_to_timespec50(const struct timespec *ts, - struct timespec50 *ts50) +static __inline void +timespec_to_timespec50(const struct timespec *ts, struct timespec50 *ts50) { + memset(ts50, 0, sizeof(*ts50)); ts50->tv_sec = (int32_t)ts->tv_sec; ts50->tv_nsec = ts->tv_nsec; } -static __inline void itimerval50_to_itimerval(const struct itimerval50 *ts50, - struct itimerval *ts) +static __inline void +itimerval50_to_itimerval(const struct itimerval50 *ts50, struct itimerval *ts) { + memset(ts, 0, sizeof(*ts)); timeval50_to_timeval(&ts50->it_interval, &ts->it_interval); timeval50_to_timeval(&ts50->it_value, &ts->it_value); } -static __inline void itimerval_to_itimerval50(const struct itimerval *ts, - struct itimerval50 *ts50) +static __inline void +itimerval_to_itimerval50(const struct itimerval *ts, struct itimerval50 *ts50) { + memset(ts50, 0, sizeof(*ts50)); timeval_to_timeval50(&ts->it_interval, &ts50->it_interval); timeval_to_timeval50(&ts->it_value, &ts50->it_value); } -static __inline void itimerspec50_to_itimerspec(const struct itimerspec50 *ts50, +static __inline void +itimerspec50_to_itimerspec(const struct itimerspec50 *ts50, struct itimerspec *ts) { + memset(ts, 0, sizeof(*ts)); timespec50_to_timespec(&ts50->it_interval, &ts->it_interval); timespec50_to_timespec(&ts50->it_value, &ts->it_value); } -static __inline void itimerspec_to_itimerspec50(const struct itimerspec *ts, +static __inline void +itimerspec_to_itimerspec50(const struct itimerspec *ts, struct itimerspec50 *ts50) { + memset(ts50, 0, sizeof(*ts50)); timespec_to_timespec50(&ts->it_interval, &ts50->it_interval); timespec_to_timespec50(&ts->it_value, &ts50->it_value); } Index: src/sys/compat/ultrix/ultrix_ioctl.c diff -u src/sys/compat/ultrix/ultrix_ioctl.c:1.37 src/sys/compat/ultrix/ultrix_ioctl.c:1.37.8.1 --- src/sys/compat/ultrix/ultrix_ioctl.c:1.37 Sat Oct 8 15:48:07 2016 +++ src/sys/compat/ultrix/ultrix_ioctl.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ultrix_ioctl.c,v 1.37 2016/10/08 15:48:07 maxv Exp $ */ +/* $NetBSD: ultrix_ioctl.c,v 1.37.8.1 2023/06/21 21:04:01 martin Exp $ */ /* from : NetBSD: sunos_ioctl.c,v 1.21 1995/10/07 06:27:31 mycroft Exp */ /* @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ultrix_ioctl.c,v 1.37 2016/10/08 15:48:07 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ultrix_ioctl.c,v 1.37.8.1 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_ultrix.h" @@ -145,6 +145,8 @@ stios2btios(struct emul_termios *st, str { uint32_t l, r; + memset(bt, 0, sizeof(*bt)); + l = st->c_iflag; r = ((l & 0x00000001) ? IGNBRK : 0); r |= ((l & 0x00000002) ? BRKINT : 0); @@ -276,6 +278,8 @@ btios2stios(struct termios *bt, struct e uint32_t l, r; int speed; + memset(st, 0, sizeof(*st)); + l = bt->c_iflag; r = ((l & IGNBRK) ? 0x00000001 : 0); r |= ((l & BRKINT) ? 0x00000002 : 0); @@ -419,6 +423,8 @@ btios2stios(struct termios *bt, struct e static void stios2stio(struct emul_termios *ts, struct emul_termio *t) { + + memset(t, 0, sizeof(*t)); t->c_iflag = ts->c_iflag; t->c_oflag = ts->c_oflag; t->c_cflag = ts->c_cflag; @@ -433,6 +439,8 @@ stios2stio(struct emul_termios *ts, stru static void stio2stios(struct emul_termio *t, struct emul_termios *ts) { + + memset(ts, 0, sizeof(*t)); ts->c_iflag = t->c_iflag; ts->c_oflag = t->c_oflag; ts->c_cflag = t->c_cflag; @@ -528,6 +536,7 @@ ultrix_sys_ioctl(struct lwp *l, const st if ((error = ultrix_do_ioctl(SCARG(&ap, fd), TIOCGWINSZ, &ws, l)) != 0) return error; + memset(&ss, 0, sizeof(ss)); ss.ts_row = ws.ws_row; ss.ts_col = ws.ws_col; Index: src/sys/compat/ultrix/ultrix_misc.c diff -u src/sys/compat/ultrix/ultrix_misc.c:1.122 src/sys/compat/ultrix/ultrix_misc.c:1.122.32.1 --- src/sys/compat/ultrix/ultrix_misc.c:1.122 Sun Feb 19 21:06:45 2012 +++ src/sys/compat/ultrix/ultrix_misc.c Wed Jun 21 21:04:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ultrix_misc.c,v 1.122 2012/02/19 21:06:45 rmind Exp $ */ +/* $NetBSD: ultrix_misc.c,v 1.122.32.1 2023/06/21 21:04:01 martin Exp $ */ /* * Copyright (c) 1995, 1997 Jonathan Stone (hereinafter referred to as the author) @@ -76,7 +76,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.122 2012/02/19 21:06:45 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.122.32.1 2023/06/21 21:04:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -628,6 +628,7 @@ ultrix_sys_sigvec(struct lwp *l, const s if (error) return error; if (SCARG(uap, osv)) { + memset(&osv, 0, sizeof(osv)); osv.sv_handler = osa.sa_handler; osv.sv_flags = osa.sa_flags ^ SA_RESTART; osv.sv_flags &= (ULTRIX_SV_ONSTACK | ULTRIX_SV_INTERRUPT); @@ -687,6 +688,8 @@ static int ultrix_to_bsd_flock(struct ultrix_flock *ufl, struct flock *fl) { + memset(fl, 0, sizeof(*fl)); + fl->l_start = ufl->l_start; fl->l_len = ufl->l_len; fl->l_pid = ufl->l_pid; @@ -713,6 +716,8 @@ static void bsd_to_ultrix_flock(struct flock *fl, struct ultrix_flock *ufl) { + memset(ufl, 0, sizeof(*ufl)); + ufl->l_start = fl->l_start; ufl->l_len = fl->l_len; ufl->l_pid = fl->l_pid;