chiark / gitweb /
util: include `stdarg.h`
[elogind.git] / src / ask-password-api.c
index 384cfc8f8058cdd12a0bb7bf3f6cdd123ae4a5ef..04d5623d9ee19597bf849de6a13c7c018d5b5dcf 100644 (file)
@@ -404,13 +404,13 @@ int ask_password_agent(
 
                 t = now(CLOCK_MONOTONIC);
 
-                if (until <= t) {
+                if (until > 0 && until <= t) {
                         log_notice("Timed out");
                         r = -ETIME;
                         goto finish;
                 }
 
-                if ((k = poll(pollfd, _FD_MAX, (until-t)/USEC_PER_MSEC)) < 0) {
+                if ((k = poll(pollfd, _FD_MAX, until > 0 ? (int) ((until-t)/USEC_PER_MSEC) : -1)) < 0) {
 
                         if (errno == EINTR)
                                 continue;