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;