Module Name:    src
Committed By:   martin
Date:           Tue Dec 25 11:19:52 UTC 2018

Modified Files:
        src/sys/compat/netbsd32 [netbsd-8]: netbsd32_netbsd.c
        src/sys/uvm [netbsd-8]: uvm_swap.c

Log Message:
Apply patch, requested by maxv in ticket #1142:
Similar to:

        sys/uvm/uvm_swap.c: revision 1.178

Fix kernel info leak in swapctl(2).

        Possible info leak: [len=1056, leaked=931]
        #0 0xffffffff80bad351 in kleak_copyout
        #1 0xffffffff80b2cf64 in uvm_swap_stats.part.1
        #2 0xffffffff80b2d38d in uvm_swap_stats
        #3 0xffffffff80b2d43c in sys_swapctl
        #4 0xffffffff80259b82 in syscall


To generate a diff of this commit:
cvs rdiff -u -r1.206 -r1.206.2.1 src/sys/compat/netbsd32/netbsd32_netbsd.c
cvs rdiff -u -r1.174.10.1 -r1.174.10.2 src/sys/uvm/uvm_swap.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/netbsd32/netbsd32_netbsd.c
diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.206 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.206.2.1
--- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.206	Sat Apr 29 01:15:40 2017
+++ src/sys/compat/netbsd32/netbsd32_netbsd.c	Tue Dec 25 11:19:52 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_netbsd.c,v 1.206 2017/04/29 01:15:40 christos Exp $	*/
+/*	$NetBSD: netbsd32_netbsd.c,v 1.206.2.1 2018/12/25 11:19:52 martin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001, 2008 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.206 2017/04/29 01:15:40 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.206.2.1 2018/12/25 11:19:52 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ddb.h"
@@ -1770,7 +1770,7 @@ netbsd32_swapctl_stats(struct lwp *l, st
 	}
 
 	ksep_len = sizeof(*ksep) * count;
-	ksep = kmem_alloc(ksep_len, KM_SLEEP);
+	ksep = kmem_zalloc(ksep_len, KM_SLEEP);
 	usep32 = (struct netbsd32_swapent *)SCARG(uap, arg);
 
 	uvm_swap_stats(SWAP_STATS, ksep, count, retval);

Index: src/sys/uvm/uvm_swap.c
diff -u src/sys/uvm/uvm_swap.c:1.174.10.1 src/sys/uvm/uvm_swap.c:1.174.10.2
--- src/sys/uvm/uvm_swap.c:1.174.10.1	Thu Nov  2 21:29:53 2017
+++ src/sys/uvm/uvm_swap.c	Tue Dec 25 11:19:52 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_swap.c,v 1.174.10.1 2017/11/02 21:29:53 snj Exp $	*/
+/*	$NetBSD: uvm_swap.c,v 1.174.10.2 2018/12/25 11:19:52 martin Exp $	*/
 
 /*
  * Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.174.10.1 2017/11/02 21:29:53 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.174.10.2 2018/12/25 11:19:52 martin Exp $");
 
 #include "opt_uvmhist.h"
 #include "opt_compat_netbsd.h"
@@ -525,7 +525,7 @@ sys_swapctl(struct lwp *l, const struct 
 		else
 #endif
 			len = sizeof(struct swapent) * misc;
-		sep = (struct swapent *)kmem_alloc(len, KM_SLEEP);
+		sep = (struct swapent *)kmem_zalloc(len, KM_SLEEP);
 
 		uvm_swap_stats(SCARG(uap, cmd), sep, misc, retval);
 		error = copyout(sep, SCARG(uap, arg), len);

Reply via email to