diff --git a/crypto/des/ecb_enc.c b/crypto/des/ecb_enc.c index 6c0e5a41062173fc07d699f361ec1acf7250fdd6..9de7b1d5c94794d23be385ed67e883a125c9d81f 100644 --- a/crypto/des/ecb_enc.c +++ b/crypto/des/ecb_enc.c @@ -72,7 +72,6 @@ const char *des_options(void) { const char *ptr,*unroll,*risc,*size; - init=0; #ifdef DES_PTR ptr="ptr"; #else @@ -98,6 +97,7 @@ const char *des_options(void) else size="long"; sprintf(buf,"des(%s,%s,%s,%s)",ptr,risc,unroll,size); + init=0; } return(buf); } diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c index dbf13e686fe1525440228d5305130eae8cc9b97b..5b2db35aaecb22fab0b84fc02fce9fa96ab88376 100644 --- a/crypto/rand/md_rand.c +++ b/crypto/rand/md_rand.c @@ -241,7 +241,6 @@ static void ssleay_rand_bytes(unsigned char *buf, int num) if (init) { - init=0; CRYPTO_w_unlock(CRYPTO_LOCK_RAND); /* put in some default random data, we need more than * just this */ @@ -281,6 +280,7 @@ static void ssleay_rand_bytes(unsigned char *buf, int num) memset(md,0,MD_DIGEST_LENGTH); #endif CRYPTO_w_lock(CRYPTO_LOCK_RAND); + init=0; } st_idx=state_index; diff --git a/crypto/x509v3/v3err.c b/crypto/x509v3/v3err.c index a00dda754f6458c5589d07fa0e5d864fd5027431..febd36dfce796c9781476b1ee2df16608970f31b 100644 --- a/crypto/x509v3/v3err.c +++ b/crypto/x509v3/v3err.c @@ -151,7 +151,7 @@ static ERR_STRING_DATA X509V3_str_reasons[]= #endif -void ERR_load_X509V3_strings(void) +void ERR_load_X509V3_strings() { static int init=1; diff --git a/ssl/s23_clnt.c b/ssl/s23_clnt.c index 61c74201355fb28c0b9488c9c45b56f1cedebc8e..c7f85a621f3d17483b885cee06134c7d36174483 100644 --- a/ssl/s23_clnt.c +++ b/ssl/s23_clnt.c @@ -94,11 +94,11 @@ SSL_METHOD *SSLv23_client_method(void) if (init) { - init=0; memcpy((char *)&SSLv23_client_data, (char *)sslv23_base_method(),sizeof(SSL_METHOD)); SSLv23_client_data.ssl_connect=ssl23_connect; SSLv23_client_data.get_ssl_method=ssl23_get_client_method; + init=0; } return(&SSLv23_client_data); } diff --git a/ssl/s23_meth.c b/ssl/s23_meth.c index edcbdbb2bd14cb35af5d632a5f0ac666e5aa262e..f1f81325be2410f4d9e73131a3fa5d833bc2cc7b 100644 --- a/ssl/s23_meth.c +++ b/ssl/s23_meth.c @@ -85,12 +85,12 @@ SSL_METHOD *SSLv23_method(void) if (init) { - init=0; memcpy((char *)&SSLv23_data,(char *)sslv23_base_method(), sizeof(SSL_METHOD)); SSLv23_data.ssl_connect=ssl23_connect; SSLv23_data.ssl_accept=ssl23_accept; SSLv23_data.get_ssl_method=ssl23_get_method; + init=0; } return(&SSLv23_data); } diff --git a/ssl/s23_srvr.c b/ssl/s23_srvr.c index 8dc0a0608fce8528f686b16575636c759eb5d48b..f626c9cb0611023d64babe2212e045909d036f93 100644 --- a/ssl/s23_srvr.c +++ b/ssl/s23_srvr.c @@ -92,11 +92,11 @@ SSL_METHOD *SSLv23_server_method(void) if (init) { - init=0; memcpy((char *)&SSLv23_server_data, (char *)sslv23_base_method(),sizeof(SSL_METHOD)); SSLv23_server_data.ssl_accept=ssl23_accept; SSLv23_server_data.get_ssl_method=ssl23_get_server_method; + init=0; } return(&SSLv23_server_data); } diff --git a/ssl/s2_clnt.c b/ssl/s2_clnt.c index 5652549dac75692c82bb92750189cc6d108a93a8..3a79fd7412ac14e09767b8cdb893b63680acb97d 100644 --- a/ssl/s2_clnt.c +++ b/ssl/s2_clnt.c @@ -103,11 +103,11 @@ SSL_METHOD *SSLv2_client_method(void) if (init) { - init=0; memcpy((char *)&SSLv2_client_data,(char *)sslv2_base_method(), sizeof(SSL_METHOD)); SSLv2_client_data.ssl_connect=ssl2_connect; SSLv2_client_data.get_ssl_method=ssl2_get_client_method; + init=0; } return(&SSLv2_client_data); } diff --git a/ssl/s2_lib.c b/ssl/s2_lib.c index 43c7cab3edef4dc122c59f57ae0167f4796eed25..4c734c9acfca615f28461751541a87ed70ca8d2a 100644 --- a/ssl/s2_lib.c +++ b/ssl/s2_lib.c @@ -316,7 +316,7 @@ SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p) if (init) { - init=0; + CRYPTO_w_lock(CRYPTO_LOCK_SSL); for (i=0; i