- (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs

larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd).  Patch
   from Nicholas Marriott.
This commit is contained in:
Darren Tucker 2008-08-30 07:32:37 +10:00
parent 212f0b0879
commit 661f63b7d2
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,8 @@
20080830
- (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs
larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd). Patch
from Nicholas Marriott.
20080721 20080721
- (djm) OpenBSD CVS Sync - (djm) OpenBSD CVS Sync
- djm@cvs.openbsd.org 2008/07/23 07:36:55 - djm@cvs.openbsd.org 2008/07/23 07:36:55
@ -4721,4 +4726,4 @@
OpenServer 6 and add osr5bigcrypt support so when someone migrates OpenServer 6 and add osr5bigcrypt support so when someone migrates
passwords between UnixWare and OpenServer they will still work. OK dtucker@ passwords between UnixWare and OpenServer they will still work. OK dtucker@
$Id: ChangeLog,v 1.5097 2008/07/23 07:42:29 djm Exp $ $Id: ChangeLog,v 1.5098 2008/08/29 21:32:37 dtucker Exp $

View File

@ -1,4 +1,4 @@
/* $Id: bsd-poll.c,v 1.3 2008/04/04 05:16:36 djm Exp $ */ /* $Id: bsd-poll.c,v 1.4 2008/08/29 21:32:38 dtucker Exp $ */
/* /*
* Copyright (c) 2004, 2005, 2007 Darren Tucker (dtucker at zip com au). * Copyright (c) 2004, 2005, 2007 Darren Tucker (dtucker at zip com au).
@ -46,11 +46,12 @@ poll(struct pollfd *fds, nfds_t nfds, int timeout)
struct timeval tv, *tvp = NULL; struct timeval tv, *tvp = NULL;
for (i = 0; i < nfds; i++) { for (i = 0; i < nfds; i++) {
fd = fds[i].fd;
if (fd >= FD_SETSIZE) { if (fd >= FD_SETSIZE) {
errno = EINVAL; errno = EINVAL;
return -1; return -1;
} }
maxfd = MAX(maxfd, fds[i].fd); maxfd = MAX(maxfd, fd);
} }
nmemb = howmany(maxfd + 1 , NFDBITS); nmemb = howmany(maxfd + 1 , NFDBITS);