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