Module Name:    src
Committed By:   martin
Date:           Tue Dec 25 11:33:27 UTC 2018

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

Log Message:
Apply patch, requested by maxv in ticket #1666:
Fix similar to:

        sys/uvm/uvm_swap.c: revision 1.178

Woah man, fix enormous leak.

        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.193 -r1.193.10.1 src/sys/compat/netbsd32/netbsd32_netbsd.c
cvs rdiff -u -r1.172 -r1.172.10.1 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.193 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.193.10.1
--- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.193	Thu Jul 31 12:35:33 2014
+++ src/sys/compat/netbsd32/netbsd32_netbsd.c	Tue Dec 25 11:33:27 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_netbsd.c,v 1.193 2014/07/31 12:35:33 maxv Exp $	*/
+/*	$NetBSD: netbsd32_netbsd.c,v 1.193.10.1 2018/12/25 11:33:27 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.193 2014/07/31 12:35:33 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.193.10.1 2018/12/25 11:33:27 martin Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ddb.h"
@@ -1754,7 +1754,7 @@ netbsd32_swapctl_stats(struct lwp *l, st
 		count = uvmexp.nswapdev;
 
 	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.172 src/sys/uvm/uvm_swap.c:1.172.10.1
--- src/sys/uvm/uvm_swap.c:1.172	Fri Jul 25 08:10:40 2014
+++ src/sys/uvm/uvm_swap.c	Tue Dec 25 11:33:27 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_swap.c,v 1.172 2014/07/25 08:10:40 dholland Exp $	*/
+/*	$NetBSD: uvm_swap.c,v 1.172.10.1 2018/12/25 11:33:27 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.172 2014/07/25 08:10:40 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.172.10.1 2018/12/25 11:33:27 martin Exp $");
 
 #include "opt_uvmhist.h"
 #include "opt_compat_netbsd.h"
@@ -515,7 +515,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