Module Name: src Committed By: msaitoh Date: Mon Jun 30 12:09:40 UTC 2014
Modified Files: src/sys/compat/netbsd32 [netbsd-6]: netbsd32_compat_50.c netbsd32_event.c Log Message: Pull up following revision(s) (requested by maxv in ticket #1090): sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.24 sys/compat/netbsd32/netbsd32_event.c: revision 1.11 Allocate directly KQ_NEVENTS bytes. Otherwise a user can panic the system. ok christos@ To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.20.6.1 src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.9.10.1 -r1.9.10.2 src/sys/compat/netbsd32/netbsd32_event.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_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.20 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.20.6.1 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.20 Fri Nov 18 03:34:13 2011 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Mon Jun 30 12:09:40 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.20 2011/11/18 03:34:13 christos Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.20.6.1 2014/06/30 12:09:40 msaitoh Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.20 2011/11/18 03:34:13 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.20.6.1 2014/06/30 12:09:40 msaitoh Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -631,7 +631,8 @@ compat_50_netbsd32_kevent(struct lwp *l, nchanges = SCARG(uap, nchanges); nevents = SCARG(uap, nevents); - maxalloc = MIN(KQ_NEVENTS, MAX(nchanges, nevents)); + maxalloc = KQ_NEVENTS; + netbsd32_kevent_ops.keo_private = kmem_alloc(maxalloc * sizeof(struct netbsd32_kevent), KM_SLEEP); Index: src/sys/compat/netbsd32/netbsd32_event.c diff -u src/sys/compat/netbsd32/netbsd32_event.c:1.9.10.1 src/sys/compat/netbsd32/netbsd32_event.c:1.9.10.2 --- src/sys/compat/netbsd32/netbsd32_event.c:1.9.10.1 Tue Mar 18 08:01:34 2014 +++ src/sys/compat/netbsd32/netbsd32_event.c Mon Jun 30 12:09:40 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_event.c,v 1.9.10.1 2014/03/18 08:01:34 msaitoh Exp $ */ +/* $NetBSD: netbsd32_event.c,v 1.9.10.2 2014/06/30 12:09:40 msaitoh Exp $ */ /* * Copyright (c) 2005 The NetBSD Foundation. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_event.c,v 1.9.10.1 2014/03/18 08:01:34 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_event.c,v 1.9.10.2 2014/06/30 12:09:40 msaitoh Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -112,7 +112,8 @@ netbsd32___kevent50(struct lwp *l, nchanges = SCARG(uap, nchanges); nevents = SCARG(uap, nevents); - maxalloc = MIN(KQ_NEVENTS, MAX(nchanges, nevents)); + maxalloc = KQ_NEVENTS; + netbsd32_kevent_ops.keo_private = kmem_alloc(maxalloc * sizeof(struct netbsd32_kevent), KM_SLEEP);