Module Name: src Committed By: martin Date: Sun Dec 14 14:03:28 UTC 2014
Modified Files: src/sys/compat/netbsd32 [netbsd-6-0]: netbsd32_compat_30.c Log Message: Pull up revision 1.31, requested by maxv in #1209: Prevent a user-triggerable kmem_alloc(0). To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.30.20.1 src/sys/compat/netbsd32/netbsd32_compat_30.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_30.c diff -u src/sys/compat/netbsd32/netbsd32_compat_30.c:1.30 src/sys/compat/netbsd32/netbsd32_compat_30.c:1.30.20.1 --- src/sys/compat/netbsd32/netbsd32_compat_30.c:1.30 Fri Apr 23 15:19:20 2010 +++ src/sys/compat/netbsd32/netbsd32_compat_30.c Sun Dec 14 14:03:28 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_30.c,v 1.30 2010/04/23 15:19:20 rmind Exp $ */ +/* $NetBSD: netbsd32_compat_30.c,v 1.30.20.1 2014/12/14 14:03:28 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_30.c,v 1.30 2010/04/23 15:19:20 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_30.c,v 1.30.20.1 2014/12/14 14:03:28 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -78,6 +78,9 @@ compat_30_netbsd32_getdents(struct lwp * error = EBADF; goto out; } + if (count == 0) + goto out; + buf = kmem_alloc(count, KM_SLEEP); error = vn_readdir(fp, buf, UIO_SYSSPACE, count, &done, l, 0, 0); if (error == 0) {