summaryrefslogtreecommitdiff
path: root/devpoll.c
diff options
context:
space:
mode:
authorNiels Provos <provos@gmail.com>2008-07-25 01:18:40 +0000
committerNiels Provos <provos@gmail.com>2008-07-25 01:18:40 +0000
commit1aa6826f62880be761834bc1317ac0cb8dc398f4 (patch)
tree432586ae1d864b45d04ac2abedc2e1c30de701f4 /devpoll.c
parent3b24f4eedc2a60247496de74c85bc0997461edba (diff)
downloadlibevent-1aa6826f62880be761834bc1317ac0cb8dc398f4.tar.gz
fix off by one errors in devpoll; from Ian Bell
svn:r921
Diffstat (limited to 'devpoll.c')
-rw-r--r--devpoll.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/devpoll.c b/devpoll.c
index c40a718d..2fbb03ca 100644
--- a/devpoll.c
+++ b/devpoll.c
@@ -137,7 +137,7 @@ devpoll_init(struct event_base *base)
if (getrlimit(RLIMIT_NOFILE, &rl) == 0 &&
rl.rlim_cur != RLIM_INFINITY)
- nfiles = rl.rlim_cur - 1;
+ nfiles = rl.rlim_cur;
/* Initialize the kernel queue */
if ((dpfd = open("/dev/poll", O_RDWR)) == -1) {
@@ -185,12 +185,12 @@ devpoll_recalc(struct event_base *base, void *arg, int max)
{
struct devpollop *devpollop = arg;
- if (max > devpollop->nfds) {
+ if (max >= devpollop->nfds) {
struct evdevpoll *fds;
int nfds;
nfds = devpollop->nfds;
- while (nfds < max)
+ while (nfds <= max)
nfds <<= 1;
fds = mm_realloc(devpollop->fds, nfds * sizeof(struct evdevpoll));