Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys Don't leak kernel stack into userspace.



details:   https://anonhg.NetBSD.org/src/rev/11bdab3a6c1a
branches:  trunk
changeset: 756343:11bdab3a6c1a
user:      pooka <pooka%NetBSD.org@localhost>
date:      Tue Jul 13 15:38:15 2010 +0000

description:
Don't leak kernel stack into userspace.

diffstat:

 sys/compat/common/vfs_syscalls_50.c |  5 +++--
 sys/kern/vfs_vnops.c                |  6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diffs (60 lines):

diff -r 212ec11c53a1 -r 11bdab3a6c1a sys/compat/common/vfs_syscalls_50.c
--- a/sys/compat/common/vfs_syscalls_50.c       Tue Jul 13 14:00:07 2010 +0000
+++ b/sys/compat/common/vfs_syscalls_50.c       Tue Jul 13 15:38:15 2010 +0000
@@ -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));
 }
 
 /*
diff -r 212ec11c53a1 -r 11bdab3a6c1a sys/kern/vfs_vnops.c
--- a/sys/kern/vfs_vnops.c      Tue Jul 13 14:00:07 2010 +0000
+++ b/sys/kern/vfs_vnops.c      Tue Jul 13 15:38:15 2010 +0000
@@ -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);
 }
 



Home | Main Index | Thread Index | Old Index