]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Fix usec comparison in timeout_update_next
authorAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 13 Feb 2018 07:14:37 +0000 (09:14 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 13 Feb 2018 07:14:37 +0000 (09:14 +0200)
When tv_usec is exactly 1000000, call to kevent() will fail
because tv_sec does not get incremented.

Found by Adrian Gonzalez <adrianglz@globalpc.net>

src/lib/ioloop.c

index 0c58f8c3728281833e31bb7c705fb86fc3d6f255..c88561f62c9fd261fb186a8645f11fc7a661ba51 100644 (file)
@@ -232,7 +232,7 @@ static void timeout_update_next(struct timeout *timeout, struct timeval *tv_now)
        timeout->next_run.tv_sec += timeout->msecs/1000;
        timeout->next_run.tv_usec += (timeout->msecs%1000)*1000;
 
-       if (timeout->next_run.tv_usec > 1000000) {
+       if (timeout->next_run.tv_usec >= 1000000) {
                 timeout->next_run.tv_sec++;
                 timeout->next_run.tv_usec -= 1000000;
        }