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

Reply via email to