[Help-gnutls] segfault in internal function

Regit regit at inl.fr
Wed Apr 27 15:29:28 CEST 2005


Hi,

I'm writing back on this thread because my investigations bring me to a
point where I found the point where the crash occurs (using
gnutls-1.0.24).

In a gdb session I've got :

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1384118640 (LWP 22734)]
0x00002aaaab1f8bf8 in _gnutls_ciphertext2compressed (session=0x5efea0, compress_data=0x60f210 "\001", compress_size=16384, ciphertext=
      {data = 0x5f25f5 "g\233ž\vq\022@?æ\037\027·\001¬íus\t§Ïš\233\2106âêÂH\203\020\206°\203\213øÆ£Ô\005ÙÙëúú'®V±\205æ®1", size = 48}, type=22 '\026')
    at gnutls_cipher.c:453
453                             if (ciphertext.data[ciphertext.size-i] != ciphertext.data[ciphertext.size - 1])

backtrace gives me :

#0  0x00002aaaab1f8bf8 in _gnutls_ciphertext2compressed (session=0x5efea0, compress_data=0x60f210 "\001", compress_size=16384, ciphertext=
      {data = 0x5f25f5 "g\233ž\vq\022@?æ\037\027·\001¬íus\t§Ïš\233\2106âêÂH\203\020\206°\203\213øÆ£Ô\005ÙÙëúú'®V±\205æ®1", size = 48}, type=22 '\026')
    at gnutls_cipher.c:453
#1  0x00002aaaab1f8330 in _gnutls_decrypt (session=0x5efea0,
    ciphertext=0x5f25f5 "g\233ž\vq\022@?æ\037\027·\001¬íus\t§Ïš\233\2106âêÂH\203\020\206°\203\213øÆ£Ô\005ÙÙëúú'®V±\205æ®1", ciphertext_size=48,
    data=0x60f210 "\001", data_size=16384, type=GNUTLS_HANDSHAKE) at gnutls_cipher.c:124
#2  0x00002aaaab1f769e in _gnutls_recv_int (session=0x5efea0, type=GNUTLS_HANDSHAKE, htype=GNUTLS_FINISHED, data=0x5f0890 "\017", sizeofdata=1)
    at gnutls_record.c:759
#3  0x00002aaaab1faf26 in _gnutls_handshake_io_recv_int (session=0x5efea0, type=GNUTLS_HANDSHAKE, htype=GNUTLS_FINISHED, iptr=0x5f0890, sizeOfPtr=1)
    at gnutls_buffers.c:866
#4  0x00002aaaab1fcec9 in _gnutls_recv_handshake_header (session=0x5efea0, type=GNUTLS_FINISHED, recv_type=0x527ff63c) at gnutls_handshake.c:845
#5  0x00002aaaab1fd3d8 in _gnutls_recv_handshake (session=0x5efea0, data=0x527ff698, datalen=0x527ff68c, type=GNUTLS_FINISHED, optional=MANDATORY_PACKET)
    at gnutls_handshake.c:995
#6  0x00002aaaab1fc264 in _gnutls_recv_finished (session=0x5efea0) at gnutls_handshake.c:460
#7  0x00002aaaab1fff9d in _gnutls_recv_handshake_final (session=0x5efea0, init=1) at gnutls_handshake.c:2165
#8  0x00002aaaab200900 in _gnutls_handshake_common (session=0x5efea0) at gnutls_handshake.c:2293
#9  0x00002aaaab1ff2e8 in gnutls_handshake (session=0x5efea0) at gnutls_handshake.c:1920
#10 0x000000000040b287 in tls_connect (c=39, session_ptr=0x527ff798) at tls.c:916
#11 0x000000000040b46b in tls_sasl_connect (userdata=0x5dc500, data=0x5f25f5) at tls.c:984
#12 0x00002aaaaaf08676 in g_static_rw_lock_free () from /usr/lib/libglib-2.0.so.0
#13 0x00002aaaaaf07442 in g_static_private_free () from /usr/lib/libglib-2.0.so.0
#14 0x00002aaaab481b55 in start_thread () from /lib/libpthread.so.0
#15 0x00002aaaab662630 in clone () from /lib/libc.so.6

Could someone point me to what's going on ? 

I try as said in previous mail to declare thread but it does not change
anything (But it still use this declaration). 

Any tips really welcome !

BR,


Le jeudi 14 avril 2005 à 11:19 +0200, Nikos Mavrogiannopoulos a écrit :
> On Wednesday 13 April 2005 11:17, Eric Leblond wrote:
> 
> Hello Eric,
> 
> > * callback need to be declare everywhere or just before
> > gnutls_global_init ?
> Yes, only before this function.
> 
> > * I use glib in the program. It hides pthread functions behind his own
> > function. Is it sufficient to declare :
> > GCRY_THREAD_OPTION_PTHREAD_IMPL;
> I'm not really sure that this is sufficient. It depends on the internals
> of glib, that I don't know. So you need to make your own locking callbacks and 
> register them as shown in the documentation.

-- 
Éric Leblond, eleblond at inl.fr
Téléphone : 01 44 89 46 40, Fax : 01 44 89 45 01
INL, http://www.inl.fr






More information about the Gnutls-help mailing list