diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/t1_clnt.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/lib/libssl/t1_clnt.c b/src/lib/libssl/t1_clnt.c index 9ad518f9f4..57205fb429 100644 --- a/src/lib/libssl/t1_clnt.c +++ b/src/lib/libssl/t1_clnt.c | |||
| @@ -79,11 +79,18 @@ SSL_METHOD *TLSv1_client_method(void) | |||
| 79 | 79 | ||
| 80 | if (init) | 80 | if (init) |
| 81 | { | 81 | { |
| 82 | memcpy((char *)&TLSv1_client_data,(char *)tlsv1_base_method(), | 82 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD); |
| 83 | sizeof(SSL_METHOD)); | 83 | |
| 84 | TLSv1_client_data.ssl_connect=ssl3_connect; | 84 | if (init) |
| 85 | TLSv1_client_data.get_ssl_method=tls1_get_client_method; | 85 | { |
| 86 | init=0; | 86 | memcpy((char *)&TLSv1_client_data,(char *)tlsv1_base_method(), |
| 87 | sizeof(SSL_METHOD)); | ||
| 88 | TLSv1_client_data.ssl_connect=ssl3_connect; | ||
| 89 | TLSv1_client_data.get_ssl_method=tls1_get_client_method; | ||
| 90 | init=0; | ||
| 91 | } | ||
| 92 | |||
| 93 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD); | ||
| 87 | } | 94 | } |
| 88 | return(&TLSv1_client_data); | 95 | return(&TLSv1_client_data); |
| 89 | } | 96 | } |
