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);