gnutls_handshake crash on multithreading

Vasiliy Ivanov vivanov at te.net.ua
Thu Feb 18 20:32:59 CET 2010


>Actually what is the return value of gcry_control when setting them?
gcry_control( GCRYCTL_SET_THREAD_CBS, &gcry_threads_boost ); returns  0x2000003c. What it means?

-----Original Message-----
From: Nikos Mavrogiannopoulos [mailto:n.mavrogiannopoulos at gmail.com] On Behalf Of Nikos Mavrogiannopoulos
Sent: Thursday, February 18, 2010 9:51 AM
To: Vasiliy Ivanov
Cc: 'Tor Lillqvist'; 'Simon Josefsson'; bug-gnutls at gnu.org
Subject: Re: gnutls_handshake crash on multithreading

Vasiliy Ivanov wrote:
> No, it's my own structure(see below).
> It works at program start, but no methods are called at gnutls_handshake processing.

Actually what is the return value of gcry_control when setting them? Are you sure that these functions are not called?

I see here that you do:
> 		gcry_check_version (GCRYPT_VERSION);
> 		gcry_control( GCRYCTL_SET_THREAD_CBS, &gcry_threads_boost );
> 		gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
> 		gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
> 		gcry_control (GCRYCTL_RESUME_SECMEM_WARN);
> 		gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
> 		gcry_control (GCRYCTL_INITIALIZATION_FINISHED_P);
> 		
> 		gnutls_global_init();

and have no error checking whatsoever. Check gnutls_global_init() on how the initialization of libgcrypt is done. Otherwise you don't even know if these functions have any effect.



regards,
Nikos






More information about the Gnutls-devel mailing list