Blob Blame History Raw
When wrapping poll(), if we compute a negative timeout, just return a
no-results status, as the krb5int_cm_call_select() wrapper for select()
does.  Based on a patch by Filip Krska.

--- krb5/src/lib/krb5/os/sendto_kdc.c
+++ krb5/src/lib/krb5/os/sendto_kdc.c
@@ -523,6 +523,10 @@ cm_select_or_poll(const struct select_st
             return e;
         timeout = (in->end_time.tv_sec - now.tv_sec) * 1000 +
             (in->end_time.tv_usec - now.tv_usec) / 1000;
+        if (timeout < 0) {
+            *sret = 0;
+            return 0;
+        }
     }
     /* We don't need a separate copy of the selstate for poll, but use one
      * anyone for consistency with the select wrapper. */