--- lib/checkpw.c 2009-04-28 17:09:15.000000000 +0200 +++ lib/checkpw.c 2010-01-25 12:48:37.000000000 +0100 @@ -486,16 +486,14 @@ /* Timeout. */ errno = ETIMEDOUT; return -1; - case +1: - if (FD_ISSET(fd, &rfds)) { - /* Success, file descriptor is readable. */ - return 0; - } - return -1; case -1: if (errno == EINTR || errno == EAGAIN) continue; default: + if (FD_ISSET(fd, &rfds)) { + /* Success, file descriptor is readable. */ + return 0; + } /* Error catch-all. */ return -1; }