diff options
Diffstat (limited to '')
| -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 | } |
