Revert commit 530.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@531 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
Andreas Schneider
2009-04-17 18:29:31 +00:00
parent e85b16ae49
commit 91afe0de8a
2 changed files with 6 additions and 13 deletions

View File

@@ -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 unsigned long g_int = 2 ; /* G is defined as 2 by the ssh2 standards */
static bignum g; static bignum g;
static bignum p; 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){ 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. * FIXME: Make the function thread safe by adding a semaphore or mutex.
*/ */
int ssh_crypto_init(void) { int ssh_crypto_init(void) {
if (ssh_crypto_initialized_ref_count == 0) { if (ssh_crypto_inited == 0) {
#ifdef HAVE_LIBGCRYPT #ifdef HAVE_LIBGCRYPT
gcry_check_version(NULL); gcry_check_version(NULL);
@@ -134,23 +134,19 @@ int ssh_crypto_init(void) {
bignum_bin2bn(p_value, P_LEN, p); bignum_bin2bn(p_value, P_LEN, p);
OpenSSL_add_all_algorithms(); OpenSSL_add_all_algorithms();
#endif #endif
ssh_crypto_inited++;
} }
ssh_crypto_initialized_ref_count++;
return 0; return 0;
} }
void ssh_crypto_finalize(void) { void ssh_crypto_finalize(void) {
if (ssh_crypto_initialized_ref_count) { if(ssh_crypto_inited) {
ssh_crypto_initialized_ref_count--;
}
if (ssh_crypto_initialized_ref_count == 0) {
bignum_free(g); bignum_free(g);
g = NULL; g = NULL;
bignum_free(p); bignum_free(p);
p = NULL; p = NULL;
ssh_crypto_inited = 0;
} }
} }

View File

@@ -75,7 +75,6 @@ PUBLIC_KEY *publickey_make_dss(SSH_SESSION *session, BUFFER *buffer) {
key = malloc(sizeof(PUBLIC_KEY)); key = malloc(sizeof(PUBLIC_KEY));
if (key == NULL) { if (key == NULL) {
buffer_free(buffer);
return NULL; return NULL;
} }
@@ -149,7 +148,7 @@ error:
string_free(pubkey); string_free(pubkey);
publickey_free(key); publickey_free(key);
return NULL; return key;
} }
PUBLIC_KEY *publickey_make_rsa(SSH_SESSION *session, BUFFER *buffer, PUBLIC_KEY *publickey_make_rsa(SSH_SESSION *session, BUFFER *buffer,
@@ -160,7 +159,6 @@ PUBLIC_KEY *publickey_make_rsa(SSH_SESSION *session, BUFFER *buffer,
key = malloc(sizeof(PUBLIC_KEY)); key = malloc(sizeof(PUBLIC_KEY));
if (key == NULL) { if (key == NULL) {
buffer_free(buffer);
return NULL; return NULL;
} }
@@ -173,7 +171,6 @@ PUBLIC_KEY *publickey_make_rsa(SSH_SESSION *session, BUFFER *buffer,
key->type_c = type; key->type_c = type;
e = buffer_get_ssh_string(buffer); e = buffer_get_ssh_string(buffer);
n = buffer_get_ssh_string(buffer); n = buffer_get_ssh_string(buffer);
buffer_free(buffer); /* we don't need it anymore */ buffer_free(buffer); /* we don't need it anymore */
if(e == NULL || n == NULL) { if(e == NULL || n == NULL) {