diff --git a/ChangeLog b/ChangeLog index d51361f57..ec3188bd6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -37,6 +37,9 @@ [ssh-keyscan.c] Don't assume we wil get the version string all in one read(). deraadt@ OK'd + - millert@cvs.openbsd.org 2001/03/06 01:08:27 + [clientloop.c] + If read() fails with EINTR deal with it the same way we treat EAGAIN 20010305 - (bal) CVS ID touch up on sshpty.[ch] and sshlogin.[ch] @@ -4408,4 +4411,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.917 2001/03/06 03:33:04 mouring Exp $ +$Id: ChangeLog,v 1.918 2001/03/06 03:34:40 mouring Exp $ diff --git a/clientloop.c b/clientloop.c index cdd32dbbe..4805f3c83 100644 --- a/clientloop.c +++ b/clientloop.c @@ -59,7 +59,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: clientloop.c,v 1.52 2001/02/28 08:45:39 markus Exp $"); +RCSID("$OpenBSD: clientloop.c,v 1.53 2001/03/06 01:08:27 millert Exp $"); #include "ssh.h" #include "ssh1.h" @@ -491,7 +491,7 @@ client_process_net_input(fd_set * readset) * There is a kernel bug on Solaris that causes select to * sometimes wake up even though there is no data available. */ - if (len < 0 && errno == EAGAIN) + if (len < 0 && (errno == EAGAIN || errno == EINTR)) len = 0; if (len < 0) {