From 939585e90634fb9b57e479a5fa85f40d4120e125 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Wed, 17 Oct 2018 06:21:48 -0600 Subject: [PATCH] tv_nsec can never be negative after timespecsub. Found by PVS Studio --- lib/util/event.c | 2 +- lib/util/event_poll.c | 2 +- lib/util/event_select.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 { -- 2.40.0