diff options
Diffstat (limited to 'src/lib/libssl/t1_srvr.c')
| -rw-r--r-- | src/lib/libssl/t1_srvr.c | 17 | 
1 files changed, 12 insertions, 5 deletions
| diff --git a/src/lib/libssl/t1_srvr.c b/src/lib/libssl/t1_srvr.c index 6e765e587f..1c1149e49f 100644 --- a/src/lib/libssl/t1_srvr.c +++ b/src/lib/libssl/t1_srvr.c | |||
| @@ -80,11 +80,18 @@ SSL_METHOD *TLSv1_server_method(void) | |||
| 80 | 80 | ||
| 81 | if (init) | 81 | if (init) | 
| 82 | { | 82 | { | 
| 83 | memcpy((char *)&TLSv1_server_data,(char *)tlsv1_base_method(), | 83 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD); | 
| 84 | sizeof(SSL_METHOD)); | 84 | |
| 85 | TLSv1_server_data.ssl_accept=ssl3_accept; | 85 | if (init) | 
| 86 | TLSv1_server_data.get_ssl_method=tls1_get_server_method; | 86 | { | 
| 87 | init=0; | 87 | memcpy((char *)&TLSv1_server_data,(char *)tlsv1_base_method(), | 
| 88 | sizeof(SSL_METHOD)); | ||
| 89 | TLSv1_server_data.ssl_accept=ssl3_accept; | ||
| 90 | TLSv1_server_data.get_ssl_method=tls1_get_server_method; | ||
| 91 | init=0; | ||
| 92 | } | ||
| 93 | |||
| 94 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD); | ||
| 88 | } | 95 | } | 
| 89 | return(&TLSv1_server_data); | 96 | return(&TLSv1_server_data); | 
| 90 | } | 97 | } | 
