* eet_lib: Prevent double init of gcry.

SVN revision: 39716
This commit is contained in:
Cedric BAIL 2009-03-25 16:26:46 +00:00
parent 749e8b1e74
commit c392637d27
1 changed files with 21 additions and 18 deletions

View File

@ -733,25 +733,28 @@ eet_init(void)
#ifdef HAVE_GNUTLS
if (gnutls_global_init())
return --eet_initcount;
/* Before the library can be used, it must initialize itself. */
gcry_check_version(NULL);
/* Disable warning messages about problems with the secure memory subsystem.
This command should be run right after gcry_check_version. */
if (gcry_control(GCRYCTL_DISABLE_SECMEM_WARN))
/* Before the library can be used, it must initialize itself if needed. */
if (gcry_control (GCRYCTL_ANY_INITIALIZATION_P) == 0)
{
gnutls_global_deinit();
return --eet_initcount;
}
/* This command is used to allocate a pool of secure memory and thus
enabling the use of secure memory. It also drops all extra privileges the
process has (i.e. if it is run as setuid (root)). If the argument nbytes
is 0, secure memory will be disabled. The minimum amount of secure memory
allocated is currently 16384 bytes; you may thus use a value of 1 to
request that default size. */
if (gcry_control(GCRYCTL_INIT_SECMEM, 16384, 0))
{
gnutls_global_deinit();
return --eet_initcount;
gcry_check_version(NULL);
/* Disable warning messages about problems with the secure memory subsystem.
This command should be run right after gcry_check_version. */
if (gcry_control(GCRYCTL_DISABLE_SECMEM_WARN))
{
gnutls_global_deinit();
return --eet_initcount;
}
/* This command is used to allocate a pool of secure memory and thus
enabling the use of secure memory. It also drops all extra privileges the
process has (i.e. if it is run as setuid (root)). If the argument nbytes
is 0, secure memory will be disabled. The minimum amount of secure memory
allocated is currently 16384 bytes; you may thus use a value of 1 to
request that default size. */
if (gcry_control(GCRYCTL_INIT_SECMEM, 16384, 0))
{
gnutls_global_deinit();
return --eet_initcount;
}
}
#endif
#ifdef HAVE_OPENSSL