Apply by doing:
cd /usr/src/sys/kern
patch < poll.patch
And then rebuild your kernel.
===================================================================
RCS file: /usr/OpenBSD/cvs/src/sys/kern/sys_generic.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- src/sys/kern/sys_generic.c 1999/02/14 21:11:01 1.17
+++ src/sys/kern/sys_generic.c 1999/03/22 02:22:15 1.18
@@ -807,13 +807,18 @@
register_t *retval;
{
struct sys_poll_args *uap = v;
- size_t sz = sizeof(struct pollfd) * SCARG(uap, nfds);
+ size_t sz;
struct pollfd *pl;
int msec = SCARG(uap, timeout);
struct timeval atv;
int timo, ncoll, i, s, error, error2;
extern int nselcoll, selwait;
+ /* XXX constrain; This may not match standards */
+ if (SCARG(uap, nfds) > p->p_fd->fd_nfiles)
+ SCARG(uap, nfds) = p->p_fd->fd_nfiles;
+ sz = sizeof(struct pollfd) * SCARG(uap, nfds);
+
pl = (struct pollfd *) malloc(sz, M_TEMP, M_WAITOK);
if ((error = copyin(SCARG(uap, fds), pl, sz)) != 0)