Apply by doing:
cd /usr/src
patch -p0 < 018_kernresource.patch
And then rebuild your kernel.
Index: sys/kern/kern_resource.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_resource.c,v
retrieving revision 1.18
retrieving revision 1.18.2.2
diff -u -r1.18 -r1.18.2.2
--- sys/kern/kern_resource.c 25 Jan 2002 14:54:00 -0000 1.18
+++ sys/kern/kern_resource.c 6 Nov 2002 22:11:53 -0000 1.18.2.2
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_resource.c,v 1.18 2002/01/25 14:54:00 art Exp $ */
+/* $OpenBSD: kern_resource.c,v 1.18.2.2 2002/11/06 22:11:53 miod Exp $ */
/* $NetBSD: kern_resource.c,v 1.38 1996/10/23 07:19:38 matthias Exp $ */
/*-
@@ -213,7 +213,7 @@
register_t *retval;
{
register struct sys_setrlimit_args /* {
- syscallarg(u_int) which;
+ syscallarg(int) which;
syscallarg(struct rlimit *) rlp;
} */ *uap = v;
struct rlimit alim;
@@ -324,11 +324,11 @@
register_t *retval;
{
register struct sys_getrlimit_args /* {
- syscallarg(u_int) which;
+ syscallarg(int) which;
syscallarg(struct rlimit *) rlp;
} */ *uap = v;
- if (SCARG(uap, which) >= RLIM_NLIMITS)
+ if (SCARG(uap, which) < 0 || SCARG(uap, which) >= RLIM_NLIMITS)
return (EINVAL);
return (copyout((caddr_t)&p->p_rlimit[SCARG(uap, which)],
(caddr_t)SCARG(uap, rlp), sizeof (struct rlimit)));