The buffer for the decompression (remote.comp_abstract) is
initialised in time when it is needed.
With this fix decompression is disabled when the buffer
(remote.comp_abstract) is not initialised.

Bug: http://trac.libssh2.org/ticket/200
---
 src/transport.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

This patch fixes bug #200 for me. Tested with JSCAPE sftp server.

diff --git a/src/transport.c b/src/transport.c
index 38e005a..c519f0a 100644
--- a/src/transport.c
+++ b/src/transport.c
@@ -199,7 +199,10 @@ fullpacket(LIBSSH2_SESSION * session, int
encrypted /* 1 or 0 */ )
         session->fullpacket_payload_len -= p->padding_length;

         /* Check for and deal with decompression */
-        if (session->remote.comp && session->remote.comp->compress) {
+        if (session->remote.comp &&
+            session->remote.comp->compress &&
+            session->remote.comp_abstract)
+        {
             unsigned char *data;
             size_t data_len;
             rc = session->remote.comp->decomp(session,
@@ -215,7 +218,6 @@ fullpacket(LIBSSH2_SESSION * session, int
encrypted /* 1 or 0 */ )
             p->payload = data;
             session->fullpacket_payload_len = data_len;
         }
-
         session->fullpacket_packet_type = p->payload[0];

         debugdump(session, "libssh2_transport_read() plain",
-- 
1.7.3.1.msysgit.0
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Reply via email to