Module Name: src Committed By: martin Date: Wed Jun 21 21:09:28 UTC 2023
Modified Files: src/sys/compat/osf1 [netbsd-8]: osf1_cvt.c osf1_file.c osf1_misc.c Log Message: Apply patch, requested by riastradh in ticket #1837: sys/compat/osf1/osf1_cvt.c sys/compat/osf1/osf1_file.c sys/compat/osf1/osf1_misc.c Memset structures to zero before passing them to copyout to expose them to userland. No equivalent change in newer branches, commpat/osf1 has been deleted. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.28.22.1 src/sys/compat/osf1/osf1_cvt.c cvs rdiff -u -r1.43.12.1 -r1.43.12.2 src/sys/compat/osf1/osf1_file.c cvs rdiff -u -r1.87 -r1.87.8.1 src/sys/compat/osf1/osf1_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/osf1/osf1_cvt.c diff -u src/sys/compat/osf1/osf1_cvt.c:1.28 src/sys/compat/osf1/osf1_cvt.c:1.28.22.1 --- src/sys/compat/osf1/osf1_cvt.c:1.28 Mon Nov 4 16:52:08 2013 +++ src/sys/compat/osf1/osf1_cvt.c Wed Jun 21 21:09:28 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: osf1_cvt.c,v 1.28 2013/11/04 16:52:08 christos Exp $ */ +/* $NetBSD: osf1_cvt.c,v 1.28.22.1 2023/06/21 21:09:28 martin Exp $ */ /* * Copyright (c) 1999 Christopher G. Demetriou. All rights reserved. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: osf1_cvt.c,v 1.28 2013/11/04 16:52:08 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: osf1_cvt.c,v 1.28.22.1 2023/06/21 21:09:28 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -463,6 +463,8 @@ void osf1_cvt_rusage_from_native(const struct rusage *ru, struct osf1_rusage *oru) { + memset(oru, 0, sizeof(*oru)); + oru->ru_utime.tv_sec = ru->ru_utime.tv_sec; oru->ru_utime.tv_usec = ru->ru_utime.tv_usec; @@ -492,6 +494,8 @@ void osf1_cvt_sigaction_from_native(const struct sigaction *bsa, struct osf1_sigaction *osa) { + memset(osa, 0, sizeof(*osa)); + osa->osf1_sa_handler = bsa->sa_handler; osf1_cvt_sigset_from_native(&bsa->sa_mask, &osa->osf1_sa_mask); @@ -553,6 +557,7 @@ void osf1_cvt_stat_from_native(const struct stat *st, struct osf1_stat *ost) { + memset(ost, 0, sizeof(*ost)); ost->st_dev = osf1_cvt_dev_from_native(st->st_dev); ost->st_ino = st->st_ino; ost->st_mode = st->st_mode; @@ -602,7 +607,7 @@ void osf1_cvt_statfs_from_native(const struct statvfs *bsfs, struct osf1_statfs *osfs) { - memset(osfs, 0, sizeof (struct osf1_statfs)); + memset(osfs, 0, sizeof(*osfs)); if (!strncmp(MOUNT_FFS, bsfs->f_fstypename, sizeof(bsfs->f_fstypename))) osfs->f_type = OSF1_MOUNT_UFS; else if (!strncmp(MOUNT_NFS, bsfs->f_fstypename, sizeof(bsfs->f_fstypename))) Index: src/sys/compat/osf1/osf1_file.c diff -u src/sys/compat/osf1/osf1_file.c:1.43.12.1 src/sys/compat/osf1/osf1_file.c:1.43.12.2 --- src/sys/compat/osf1/osf1_file.c:1.43.12.1 Wed Aug 9 05:12:18 2017 +++ src/sys/compat/osf1/osf1_file.c Wed Jun 21 21:09:28 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: osf1_file.c,v 1.43.12.1 2017/08/09 05:12:18 snj Exp $ */ +/* $NetBSD: osf1_file.c,v 1.43.12.2 2023/06/21 21:09:28 martin Exp $ */ /* * Copyright (c) 1999 Christopher G. Demetriou. All rights reserved. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: osf1_file.c,v 1.43.12.1 2017/08/09 05:12:18 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: osf1_file.c,v 1.43.12.2 2023/06/21 21:09:28 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_syscall_debug.h" @@ -218,6 +218,7 @@ again: inp += reclen; /* it is a hole; squish it out */ continue; } + memset(&idb, 0, sizeof(idb)); osf1_reclen = OSF1_RECLEN(&idb, bdp->d_namlen); if (reclen > len || resid < osf1_reclen) { /* entry too big for buffer, so just stop */ Index: src/sys/compat/osf1/osf1_misc.c diff -u src/sys/compat/osf1/osf1_misc.c:1.87 src/sys/compat/osf1/osf1_misc.c:1.87.8.1 --- src/sys/compat/osf1/osf1_misc.c:1.87 Thu Nov 10 17:00:51 2016 +++ src/sys/compat/osf1/osf1_misc.c Wed Jun 21 21:09:28 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: osf1_misc.c,v 1.87 2016/11/10 17:00:51 christos Exp $ */ +/* $NetBSD: osf1_misc.c,v 1.87.8.1 2023/06/21 21:09:28 martin Exp $ */ /* * Copyright (c) 1999 Christopher G. Demetriou. All rights reserved. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: osf1_misc.c,v 1.87 2016/11/10 17:00:51 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: osf1_misc.c,v 1.87.8.1 2023/06/21 21:09:28 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_syscall_debug.h" @@ -338,6 +338,7 @@ osf1_sys_uname(struct lwp *l, const stru const char *cp; char *dp, *ep; + memset(&u, 0, sizeof(u)); strncpy(u.sysname, ostype, sizeof(u.sysname)); strncpy(u.nodename, hostname, sizeof(u.nodename)); strncpy(u.release, osrelease, sizeof(u.release)); @@ -383,6 +384,7 @@ osf1_sys_usleep_thread(struct lwp *l, co if (endtv.tv_sec < 0 || endtv.tv_usec < 0) endtv.tv_sec = endtv.tv_usec = 0; + memset(&endotv, 0, sizeof(endotv)); endotv.tv_sec = endtv.tv_sec; endotv.tv_usec = endtv.tv_usec; error = copyout(&endotv, SCARG(uap, slept), sizeof endotv);