From: Todd C. Miller Date: Wed, 17 Oct 2018 12:21:48 +0000 (-0600) Subject: tv_nsec can never be negative after timespecsub. X-Git-Tag: SUDO_1_8_26^2~48 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=939585e90634fb9b57e479a5fa85f40d4120e125;p=sudo tv_nsec can never be negative after timespecsub. Found by PVS Studio --- diff --git a/lib/util/event.c b/lib/util/event.c index cf9e4d7e6..7259faf31 100644 --- a/lib/util/event.c +++ b/lib/util/event.c @@ -787,7 +787,7 @@ sudo_ev_get_timeleft_v2(struct sudo_event *ev, struct timespec *ts) sudo_gettime_mono(&now); sudo_timespecsub(&ev->timeout, &now, ts); - if (ts->tv_sec < 0 || (ts->tv_sec == 0 && ts->tv_nsec < 0)) + if (ts->tv_sec < 0) sudo_timespecclear(ts); debug_return_int(0); } diff --git a/lib/util/event_poll.c b/lib/util/event_poll.c index c21d1ca8b..bc9b66bf9 100644 --- a/lib/util/event_poll.c +++ b/lib/util/event_poll.c @@ -162,7 +162,7 @@ sudo_ev_scan_impl(struct sudo_event_base *base, int flags) if ((ev = TAILQ_FIRST(&base->timeouts)) != NULL) { sudo_gettime_mono(&now); sudo_timespecsub(&ev->timeout, &now, &ts); - if (ts.tv_sec < 0 || (ts.tv_sec == 0 && ts.tv_nsec < 0)) + if (ts.tv_sec < 0) sudo_timespecclear(&ts); timeout = &ts; } else { diff --git a/lib/util/event_select.c b/lib/util/event_select.c index bcae3c038..ed76702b1 100644 --- a/lib/util/event_select.c +++ b/lib/util/event_select.c @@ -202,7 +202,7 @@ sudo_ev_scan_impl(struct sudo_event_base *base, int flags) if ((ev = TAILQ_FIRST(&base->timeouts)) != NULL) { sudo_gettime_mono(&now); sudo_timespecsub(&ev->timeout, &now, &ts); - if (ts.tv_sec < 0 || (ts.tv_sec == 0 && ts.tv_nsec < 0)) + if (ts.tv_sec < 0) sudo_timespecclear(&ts); timeout = &ts; } else {