#200: Compression not enabled correctly
------------------------+---------------------------------------------------
  Reporter:  riordanmr  |       Owner:       
      Type:  defect     |      Status:  new  
  Priority:  normal     |   Milestone:  1.2.8
 Component:  protocol   |     Version:  1.2.7
  Keywords:             |      Blocks:       
Blocked By:             |  
------------------------+---------------------------------------------------
 In the current libssh2 in git (2010-11-29), compression does not work.
 I get a "decompression unitilized" error in comp_method_zlib_decomp.
 The "abstract" parameter is NULL.
 The problem seems to be that compression has not been initialized -
 similar to ticket 180.
 The error occurs during a call to _libssh2_packet_require in
 diffie_hellman_sha1 in kex.c.
 The initialization of compression doesn't occur until later in that same
 function.
 Here's a traceback:
         mwsftp.exe!comp_method_zlib_decomp(_LIBSSH2_SESSION *
 session=0x00ff5f98, unsigned char * * dest=0x019ed620, unsigned int *
 dest_len=0x019ed614, unsigned int payload_limit=40000, const unsigned char
 * src=0x010057c0, unsigned int src_len=818, void * * abstract=0x00ff603c)
 Line 234      C
         mwsftp.exe!fullpacket(_LIBSSH2_SESSION * session=0x00ff5f98, int
 encrypted=0)  Line 209 + 0x3e bytes    C
         mwsftp.exe!_libssh2_transport_read(_LIBSSH2_SESSION *
 session=0x00ff5f98)  Line 545 + 0x10 bytes        C
         mwsftp.exe!_libssh2_packet_require(_LIBSSH2_SESSION *
 session=0x00ff5f98, unsigned char packet_type='', unsigned char * *
 data=0x01002b38, unsigned int * data_len=0x01002b5c, int match_ofs=0,
 const unsigned char * match_buf=0x00000000, unsigned int match_len=0,
 packet_require_state_t * state=0x01002ba8)  Line 1093 + 0x9 bytes C
         mwsftp.exe!diffie_hellman_sha1(_LIBSSH2_SESSION *
 session=0x00ff5f98, bignum_st * g=0x00feb5f8, bignum_st * p=0x00feb5a8,
 int group_order=256, unsigned char packet_type_init='', unsigned char
 packet_type_reply='', unsigned char * midhash=0x00000000, unsigned long
 midhash_len=0, kmdhgGPsha1kex_state_t * exchange_state=0x01002b30)  Line
 190 + 0x29 bytes       C
 mwsftp.exe!kex_method_diffie_hellman_group14_sha1_key_exchange(_LIBSSH2_SESSION
 * session=0x00ff5f98, key_exchange_state_low_t * key_state=0x01002b18)
 Line 796 + 0x31 bytes   C
         mwsftp.exe!_libssh2_kex_exchange(_LIBSSH2_SESSION *
 session=0x00ff5f98, int reexchange=0, key_exchange_state_t *
 key_state=0x01002b00)  Line 1757 + 0x18 bytes  C
         mwsftp.exe!session_startup(_LIBSSH2_SESSION * session=0x00ff5f98,
 unsigned int sock=3460)  Line 672 + 0x14 bytes        C
         mwsftp.exe!libssh2_session_handshake(_LIBSSH2_SESSION *
 session=0x00ff5f98, unsigned int sock=3460)  Line 750 + 0xd bytes       C
         mwsftp.exe!libssh2_session_startup(_LIBSSH2_SESSION *
 session=0x00ff5f98, int sock=3460)  Line 769 + 0xd bytes  C
 (Note: in order to enable standard zlib compression under Ubuntu, I had to
 add "Compression yes" to my sshd_config.)
 I'm attaching full tracing output.
 I tested against OpenSSH (on Ubuntu 10.04), Solaris, and WS_FTP SSH
 server.
 They all were unable to exchange keys with compression enabled, but they
 all worked with compression disabled.
-- Ticket URL: <http://trac.libssh2.org/ticket/200> libssh2 <http://trac.libssh2.org/> C library for writing portable SSH2 clients _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-develReceived on 2010-11-30