[Pidgin] #3456: TLS handshake error(unexpected length packet) when recieving MSN contact list

Pidgin trac at pidgin.im
Wed Feb 4 06:11:01 EST 2009


#3456: TLS handshake error(unexpected length packet) when recieving MSN contact
list
--------------------------------------+-------------------------------------
 Reporter:  bsdunx                    |        Owner:  khc    
     Type:  defect                    |       Status:  closed 
Milestone:                            |    Component:  MSN    
  Version:  2.2.1                     |   Resolution:  invalid
 Keywords:  gnutls tls handshake msn  |  
--------------------------------------+-------------------------------------

Comment(by gagern):

 By compiling a modified version of GNUTLS to tack every instance of the
 GNUTLS_E_UNEXPECTED_PACKET_LENGTH error, I've got a backtrace for this:
 {{{
 #1  0xb75d2b21 in _gnutls_recv_int (session=0x9bf9700,
 type=GNUTLS_HANDSHAKE,
     htype=GNUTLS_HANDSHAKE_SERVER_HELLO, data=0x9bfa0e8 "", sizeofdata=1)
 at gnutls_record.c:910
 #2  0xb75d7bd6 in _gnutls_handshake_io_recv_int (session=0x9bf9700,
 type=GNUTLS_HANDSHAKE,
     htype=GNUTLS_HANDSHAKE_SERVER_HELLO, iptr=0x9bfa0e8, sizeOfPtr=1) at
 gnutls_buffers.c:1123
 #3  0xb75da2d0 in _gnutls_recv_handshake_header (session=0x9bf9700,
 type=GNUTLS_HANDSHAKE_SERVER_HELLO,
     recv_type=0xbfbe58f0) at gnutls_handshake.c:1039
 #4  0xb75da88c in _gnutls_recv_handshake (session=0x9bf9700, data=0x0,
 datalen=0x0,
     type=GNUTLS_HANDSHAKE_SERVER_HELLO, optional=MANDATORY_PACKET) at
 gnutls_handshake.c:1196
 #5  0xb75dcf68 in _gnutls_handshake_client (session=0x9bf9700) at
 gnutls_handshake.c:2341
 #6  0xb75dcc18 in gnutls_handshake (session=0x9bf9700) at
 gnutls_handshake.c:2262
 #7  0xb75077fc in ssl_gnutls_handshake_cb (data=0x9737430, source=18,
 cond=3) at ssl-gnutls.c:113
 #8  0x080a50ab in pidgin_io_invoke (source=0x9b905b8, condition=<value
 optimized out>, data=0x9b8c440)
     at gtkeventloop.c:78
 #9  0x482a510a in g_io_unix_dispatch (source=<value optimized out>,
 callback=<value optimized out>,
     user_data=Could not find the frame base for "g_io_unix_dispatch".
 ) at giounix.c:162
 #10 0x48271f04 in IA__g_main_context_dispatch (context=<value optimized
 out>) at gmain.c:2144
 #11 0x482752c3 in g_main_context_iterate (context=<value optimized out>,
 block=<value optimized out>,
     dispatch=<value optimized out>, self=Could not find the frame base for
 "g_main_context_iterate".
 ) at gmain.c:2778
 #12 0x4827576c in IA__g_main_loop_run (loop=<value optimized out>) at
 gmain.c:2986
 #13 0x426a7237 in IA__gtk_main () at gtkmain.c:1200
 #14 0x080be1fe in main (argc=Cannot access memory at address 0xffffffca
 ) at gtkmain.c:884
 }}}

 Note when you try debugging this yourself that there is another situation
 where _gnutls_recv_int returns GNUTLS_E_UNEXPECTED_PACKET_LENGTH. In that
 case the call stack looks different, it includes msn_soap_read_cb and
 purple_ssl_read. This error seems to occur even for successful
 connections, and pidgin seems to recover well from it, so it's probably
 unrelated to this bug here.

 I can also confirm a correspondence between error and IP, though for me
 65.54.170.28 is the working one. The failing one is 65.54.170.19 as it is
 for freezy. Notice that in the comment:description by bsdunx it was
 65.54.170.30 causing the failure, which seems to work now.

 I even can confirm the issue with curl compiled against gnutls:
 {{{
 $ curl https://65.54.170.19/
 curl: (35) gnutls_handshake() failed: A TLS packet with unexpected length
 was received.
 }}}

 So it might be some kind of general gnutls issue, not directly related to
 Pidgin. As we only know of that single server, though, where this error
 occurs, it might well be that few people would encounter this except those
 trying to use MSN through some allication employing gnutls.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/3456#comment:9>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list