aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Cross <JCross@bomgar.com>2016-07-25 22:55:04 +0000
committerAndreas Schneider <asn@cryptomilk.org>2016-09-09 11:39:32 +0200
commitdbf72ffba2ad5b5694cd55aa1a7ca99053d20386 (patch)
treeb77f19a25b70d6f0d5cd9ba41d290017625480d3
parent47d21b642094286fb22693cac75200e8e670ad78 (diff)
downloadlibssh-dbf72ffba2ad5b5694cd55aa1a7ca99053d20386.tar.gz
libssh-dbf72ffba2ad5b5694cd55aa1a7ca99053d20386.tar.xz
libssh-dbf72ffba2ad5b5694cd55aa1a7ca99053d20386.zip
sftp: ensure sftp_packet_read recognizes channel EOF to avoid infinite loop
Signed-off-by: Jeremy Cross <jcross@bomgar.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--src/sftp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sftp.c b/src/sftp.c
index f99683da..e34bba0d 100644
--- a/src/sftp.c
+++ b/src/sftp.c
@@ -322,7 +322,7 @@ sftp_packet sftp_packet_read(sftp_session sftp) {
do {
// read from channel until 4 bytes have been read or an error occurs
s=ssh_channel_read(sftp->channel, buffer+r, 4-r, 0);
- if (s < 0) {
+ if (s <= 0) {
ssh_buffer_free(packet->payload);
SAFE_FREE(packet);
return NULL;