diff options
author | Damien Miller <djm@mindrot.org> | 2001-03-19 22:29:46 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2001-03-19 22:29:46 +1100 |
commit | cafff1910541b1704e80b3cb16f6926135f23ea6 (patch) | |
tree | 73af2bfb161257c5ee4ebaa73769ea4fbed352a1 /sftp-client.c | |
parent | 03017ba638e7de9f3b9e659d2202a018d9918919 (diff) | |
download | openssh-git-cafff1910541b1704e80b3cb16f6926135f23ea6.tar.gz |
- (djm) OpenBSD CVS Sync
- djm@cvs.openbsd.org 2001/03/19 03:52:51
[sftp-client.c]
Report ssh connection closing correctly; ok deraadt@
Diffstat (limited to 'sftp-client.c')
-rw-r--r-- | sftp-client.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sftp-client.c b/sftp-client.c index b0007a73..7be73d29 100644 --- a/sftp-client.c +++ b/sftp-client.c @@ -29,7 +29,7 @@ /* XXX: copy between two remote sites */ #include "includes.h" -RCSID("$OpenBSD: sftp-client.c,v 1.14 2001/03/16 08:16:17 djm Exp $"); +RCSID("$OpenBSD: sftp-client.c,v 1.15 2001/03/19 10:52:51 djm Exp $"); #include "ssh.h" #include "buffer.h" @@ -77,7 +77,9 @@ get_msg(int fd, Buffer *m) unsigned char buf[4096]; len = atomicio(read, fd, buf, 4); - if (len != 4) + if (len == 0) + fatal("Connection closed"); + else if (len == -1) fatal("Couldn't read packet: %s", strerror(errno)); msg_len = GET_32BIT(buf); @@ -86,7 +88,9 @@ get_msg(int fd, Buffer *m) while (msg_len) { len = atomicio(read, fd, buf, MIN(msg_len, sizeof(buf))); - if (len <= 0) + if (len == 0) + fatal("Connection closed"); + else if (len == -1) fatal("Couldn't read packet: %s", strerror(errno)); msg_len -= len; |