summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2001-03-19 22:29:46 +1100
committerDamien Miller <djm@mindrot.org>2001-03-19 22:29:46 +1100
commitcafff1910541b1704e80b3cb16f6926135f23ea6 (patch)
tree73af2bfb161257c5ee4ebaa73769ea4fbed352a1
parent03017ba638e7de9f3b9e659d2202a018d9918919 (diff)
- (djm) OpenBSD CVS Sync
- djm@cvs.openbsd.org 2001/03/19 03:52:51 [sftp-client.c] Report ssh connection closing correctly; ok deraadt@
-rw-r--r--ChangeLog6
-rw-r--r--sftp-client.c10
2 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index e09afd65..43f80803 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,10 @@
stuff. Change suggested by Mark Miller <markm@swoon.net>
- (bal) Small fix to scp. %lu vs %ld
- (bal) NeXTStep lacks S_ISLNK. Plus split up S_IS*
+ - (djm) OpenBSD CVS Sync
+ - djm@cvs.openbsd.org 2001/03/19 03:52:51
+ [sftp-client.c]
+ Report ssh connection closing correctly; ok deraadt@
20010318
- (bal) Fixed scp type casing issue which causes "scp: protocol error:
@@ -4612,4 +4616,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
-$Id: ChangeLog,v 1.979 2001/03/19 03:12:25 mouring Exp $
+$Id: ChangeLog,v 1.980 2001/03/19 11:29:46 djm Exp $
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;