summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1998-12-10 01:53:26 +0000
committerjkh <jkh@FreeBSD.org>1998-12-10 01:53:26 +0000
commita8879d09ef2dfdb0375e033fd47fe81dfc6c0be8 (patch)
treecea6a8e5c72f28306f749cb8aee4fc18c18e4fe4 /sys/kern
parent7e681e5e17b78a44b85222931bbfb452faaf4a08 (diff)
downloadFreeBSD-src-a8879d09ef2dfdb0375e033fd47fe81dfc6c0be8.zip
FreeBSD-src-a8879d09ef2dfdb0375e033fd47fe81dfc6c0be8.tar.gz
poll(2) sets POLLNVAL for descriptors passed in that are less than
0. This makes it difficult to do efficient manipulation of the struct pollfd since you can't leave a slot empty. PR: 8599 Submitted-by: Marc Slemko <marcs@znep.com>
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/sys_generic.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index e16fed7..8d90ee9 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)sys_generic.c 8.5 (Berkeley) 1/21/94
- * $Id: sys_generic.c,v 1.41 1998/09/05 14:30:11 bde Exp $
+ * $Id: sys_generic.c,v 1.42 1998/11/11 10:03:55 truckman Exp $
*/
#include "opt_ktrace.h"
@@ -762,9 +762,11 @@ pollscan(p, fds, nfd)
int n = 0;
for (i = 0; i < nfd; i++, fds++) {
- if ((u_int)fds->fd >= fdp->fd_nfiles) {
+ if (fds->fd >= fdp->fd_nfiles) {
fds->revents = POLLNVAL;
n++;
+ } else if (fds->fd < 0) {
+ fds->revents = 0;
} else {
fp = fdp->fd_ofiles[fds->fd];
if (fp == 0) {
OpenPOWER on IntegriCloud