]> granicus.if.org Git - sudo/commitdiff
tv_nsec can never be negative after timespecsub.
authorTodd C. Miller <Todd.Miller@sudo.ws>
Wed, 17 Oct 2018 12:21:48 +0000 (06:21 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Wed, 17 Oct 2018 12:21:48 +0000 (06:21 -0600)
Found by PVS Studio

lib/util/event.c
lib/util/event_poll.c
lib/util/event_select.c

index cf9e4d7e674d82656098b11a51a8da967d2a017b..7259faf3167d7c2ece06af0cdfd77a5eb4b77e92 100644 (file)
@@ -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);
 }
index c21d1ca8bc83def28a3092d83a0ab6e8f91078e5..bc9b66bf93d332e70fadf136aeff9e3c9c40b212 100644 (file)
@@ -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 {
index bcae3c03822ba150c21d994d4b90422fbe5b0563..ed76702b1297a6f640e8327831ba6de5ed1f2202 100644 (file)
@@ -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 {