A value of 0 is returned when the end of the file has been reached. (For information about communication files, see the ioctl and termio files.) The read is returning zero for something other than EOF. -- Darren Tucker (dtucker at zip.com.au) GPG Fingerprint D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69 Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement. --------------4DF905CE3C59C616D5F4AA6C Content-Type: text/plain; charset=us-ascii; name="openssh-3.5p1-aix_zerowrite.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="openssh-3.5p1-aix_zerowrite.patch" diff -ru openssh-3.5p1.orig/channels.c openssh-3.5p1/channels.c --- openssh-3.5p1.orig/channels.c Thu Sep 19 11:54:55 2002 +++ openssh-3.5p1/channels.c Wed Dec 11 15:28:51 2002 @@ -1246,8 +1246,8 @@ len = read(c->rfd, buf, sizeof(buf)); if (len < 0 && (errno == EINTR || errno == EAGAIN)) return 1; - if (len <= 0) { - debug("channel %d: read<=0 rfd %d len %d", + if (len < 0) { + debug("channel %d: read<0 rfd %d len %d", c->self, c->rfd, len); if (c->type != SSH_CHANNEL_OPEN) { debug("channel %d: not open", c->self); --------------4DF905CE3C59C616D5F4AA6C--