=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/packet.c,v retrieving revision 1.155 retrieving revision 1.156 diff -u -r1.155 -r1.156 --- src/usr.bin/ssh/packet.c 2008/06/13 09:44:36 1.155 +++ src/usr.bin/ssh/packet.c 2008/07/04 23:08:25 1.156 @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.155 2008/06/13 09:44:36 deraadt Exp $ */ +/* $OpenBSD: packet.c,v 1.156 2008/07/04 23:08:25 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1465,12 +1465,13 @@ if (len > 0) { len = write(connection_out, buffer_ptr(&output), len); - if (len <= 0) { - if (errno == EAGAIN) + if (len == -1) { + if (errno == EINTR || errno == EAGAIN) return; - else - fatal("Write failed: %.100s", strerror(errno)); + fatal("Write failed: %.100s", strerror(errno)); } + if (len == 0) + fatal("Write connection closed"); buffer_consume(&output, len); } }