Module Name:    src
Committed By:   pooka
Date:           Tue Jul 13 15:38:15 UTC 2010

Modified Files:
        src/sys/compat/common: vfs_syscalls_50.c
        src/sys/kern: vfs_vnops.c

Log Message:
Don't leak kernel stack into userspace.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/compat/common/vfs_syscalls_50.c
cvs rdiff -u -r1.174 -r1.175 src/sys/kern/vfs_vnops.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/vfs_syscalls_50.c
diff -u src/sys/compat/common/vfs_syscalls_50.c:1.5 src/sys/compat/common/vfs_syscalls_50.c:1.6
--- src/sys/compat/common/vfs_syscalls_50.c:1.5	Sun Aug  9 22:49:00 2009
+++ src/sys/compat/common/vfs_syscalls_50.c	Tue Jul 13 15:38:15 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls_50.c,v 1.5 2009/08/09 22:49:00 haad Exp $	*/
+/*	$NetBSD: vfs_syscalls_50.c,v 1.6 2010/07/13 15:38:15 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_50.c,v 1.5 2009/08/09 22:49:00 haad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_50.c,v 1.6 2010/07/13 15:38:15 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -93,6 +93,7 @@
 	ost->st_blksize = st->st_blksize;
 	ost->st_flags = st->st_flags;
 	ost->st_gen = st->st_gen;
+	memset(ost->st_spare, 0, sizeof(ost->st_spare));
 }
 
 /*

Index: src/sys/kern/vfs_vnops.c
diff -u src/sys/kern/vfs_vnops.c:1.174 src/sys/kern/vfs_vnops.c:1.175
--- src/sys/kern/vfs_vnops.c:1.174	Thu Jun 24 13:03:12 2010
+++ src/sys/kern/vfs_vnops.c	Tue Jul 13 15:38:15 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_vnops.c,v 1.174 2010/06/24 13:03:12 hannken Exp $	*/
+/*	$NetBSD: vfs_vnops.c,v 1.175 2010/07/13 15:38:15 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_vnops.c,v 1.174 2010/06/24 13:03:12 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnops.c,v 1.175 2010/07/13 15:38:15 pooka Exp $");
 
 #include "veriexec.h"
 
@@ -601,6 +601,7 @@
 	int error;
 	mode_t mode;
 
+	memset(&va, 0, sizeof(va));
 	error = VOP_GETATTR(vp, &va, kauth_cred_get());
 	if (error)
 		return (error);
@@ -649,6 +650,7 @@
 	sb->st_flags = va.va_flags;
 	sb->st_gen = 0;
 	sb->st_blocks = va.va_bytes / S_BLKSIZE;
+	memset(sb->st_spare, 0, sizeof(sb->st_spare));
 	return (0);
 }
 

Reply via email to