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:40:07 +0200
commit6697f85b5053e36a880f725ea87d1fbba5ee0563 (patch)
tree523800ef7c678e83b68a349faf285e52b8318878
parent67fe6f56eabb121072c7607e534a965bdfe12a03 (diff)
downloadlibssh-6697f85b5053e36a880f725ea87d1fbba5ee0563.tar.gz
libssh-6697f85b5053e36a880f725ea87d1fbba5ee0563.tar.xz
libssh-6697f85b5053e36a880f725ea87d1fbba5ee0563.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> (cherry picked from commit dbf72ffba2ad5b5694cd55aa1a7ca99053d20386)
-rw-r--r--src/sftp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sftp.c b/src/sftp.c
index 6bcd8a69..fa2d3f44 100644
--- a/src/sftp.c
+++ b/src/sftp.c
@@ -334,7 +334,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;