diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-17 18:29:31 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-17 18:29:31 +0000 |
commit | 91afe0de8a5541c30146c54de64f2dafa33f2d04 (patch) | |
tree | 20ef68b08aaf30d040291b36549b4b728dc173d9 /libssh/dh.c | |
parent | e85b16ae49578cc8501b98c323c7658533478e81 (diff) | |
download | libssh-91afe0de8a5541c30146c54de64f2dafa33f2d04.tar.gz libssh-91afe0de8a5541c30146c54de64f2dafa33f2d04.tar.xz libssh-91afe0de8a5541c30146c54de64f2dafa33f2d04.zip |
Revert commit 530.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@531 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/dh.c')
-rw-r--r-- | libssh/dh.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/libssh/dh.c b/libssh/dh.c index bb22fcf..619a4d2 100644 --- a/libssh/dh.c +++ b/libssh/dh.c @@ -72,7 +72,7 @@ static unsigned char p_value[] = { static unsigned long g_int = 2 ; /* G is defined as 2 by the ssh2 standards */ static bignum g; static bignum p; -static unsigned int ssh_crypto_initialized_ref_count = 0; +static int ssh_crypto_inited=0; int ssh_get_random(void *where, int len, int strong){ @@ -101,7 +101,7 @@ int ssh_get_random(void *where, int len, int strong){ * FIXME: Make the function thread safe by adding a semaphore or mutex. */ int ssh_crypto_init(void) { - if (ssh_crypto_initialized_ref_count == 0) { + if (ssh_crypto_inited == 0) { #ifdef HAVE_LIBGCRYPT gcry_check_version(NULL); @@ -134,23 +134,19 @@ int ssh_crypto_init(void) { bignum_bin2bn(p_value, P_LEN, p); OpenSSL_add_all_algorithms(); #endif + ssh_crypto_inited++; } - ssh_crypto_initialized_ref_count++; - return 0; } void ssh_crypto_finalize(void) { - if (ssh_crypto_initialized_ref_count) { - ssh_crypto_initialized_ref_count--; - } - - if (ssh_crypto_initialized_ref_count == 0) { + if(ssh_crypto_inited) { bignum_free(g); g = NULL; bignum_free(p); p = NULL; + ssh_crypto_inited = 0; } } |