Fixed some race conditions.

Submitted by:
Reviewed by:
PR:
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index 4e58bcd..12f7ec6 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -797,7 +797,7 @@
 
 	if (init)
 		{
-		init=0;
+		CRYPTO_w_lock(CRYPTO_LOCK_SSL);
 
 		for (i=0; i<SSL3_NUM_CIPHERS; i++)
 			sorted[i]= &(ssl3_ciphers[i]);
@@ -805,6 +805,10 @@
 		qsort(	(char *)sorted,
 			SSL3_NUM_CIPHERS,sizeof(SSL_CIPHER *),
 			FP_ICC ssl_cipher_ptr_id_cmp);
+
+		CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
+
+		init=0;
 		}
 
 	id=0x03000000L|((unsigned long)p[0]<<8L)|(unsigned long)p[1];