diff options
Diffstat (limited to 'src/lib/libssl/s23_srvr.c')
-rw-r--r-- | src/lib/libssl/s23_srvr.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/lib/libssl/s23_srvr.c b/src/lib/libssl/s23_srvr.c index c5404ca0bc..8743b61cbb 100644 --- a/src/lib/libssl/s23_srvr.c +++ b/src/lib/libssl/s23_srvr.c | |||
@@ -139,18 +139,11 @@ SSL_METHOD *SSLv23_server_method(void) | |||
139 | 139 | ||
140 | if (init) | 140 | if (init) |
141 | { | 141 | { |
142 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD); | 142 | memcpy((char *)&SSLv23_server_data, |
143 | 143 | (char *)sslv23_base_method(),sizeof(SSL_METHOD)); | |
144 | if (init) | 144 | SSLv23_server_data.ssl_accept=ssl23_accept; |
145 | { | 145 | SSLv23_server_data.get_ssl_method=ssl23_get_server_method; |
146 | memcpy((char *)&SSLv23_server_data, | 146 | init=0; |
147 | (char *)sslv23_base_method(),sizeof(SSL_METHOD)); | ||
148 | SSLv23_server_data.ssl_accept=ssl23_accept; | ||
149 | SSLv23_server_data.get_ssl_method=ssl23_get_server_method; | ||
150 | init=0; | ||
151 | } | ||
152 | |||
153 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD); | ||
154 | } | 147 | } |
155 | return(&SSLv23_server_data); | 148 | return(&SSLv23_server_data); |
156 | } | 149 | } |
@@ -512,7 +505,7 @@ int ssl23_get_client_hello(SSL *s) | |||
512 | 505 | ||
513 | if (s->s3 != NULL) ssl3_free(s); | 506 | if (s->s3 != NULL) ssl3_free(s); |
514 | 507 | ||
515 | if (!BUF_MEM_grow_clean(s->init_buf, | 508 | if (!BUF_MEM_grow(s->init_buf, |
516 | SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER)) | 509 | SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER)) |
517 | { | 510 | { |
518 | goto err; | 511 | goto err; |