From: Olivier Houchard Date: Tue, 11 Sep 2018 12:44:51 +0000 (+0200) Subject: BUG/MAJOR: kqueue: Don't reset the changes number by accident. X-Git-Tag: v1.9-dev2~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ab33944cd7a978c9a30ee6823bdf58e90c0abdb;p=thirdparty%2Fhaproxy.git BUG/MAJOR: kqueue: Don't reset the changes number by accident. In _update_fd(), if the fd wasn't polled, and we don't want it to be polled, we just returned 0, however, we should return changes instead, or all previous changes will be lost. This should be backported to 1.8. --- diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c index 087a07e783..e2f04f7025 100644 --- a/src/ev_kqueue.c +++ b/src/ev_kqueue.c @@ -44,7 +44,7 @@ static int _update_fd(int fd, int start) if (!(fdtab[fd].thread_mask & tid_bit) || !(en & FD_EV_POLLED_RW)) { if (!(polled_mask[fd] & tid_bit)) { /* fd was not watched, it's still not */ - return 0; + return changes; } /* fd totally removed from poll list */ EV_SET(&kev[changes++], fd, EVFILT_READ, EV_DELETE, 0, 0, NULL);