[prev in list] [next in list] [prev in thread] [next in thread]
List: openssl-cvs
Subject: cvs commit: openssl/ssl s23_clnt.c s23_srvr.c s2_clnt.c s2_lib.c s2_srvr.c s3_clnt.c s3_lib.c s3_srv
From: bodo () openssl ! org
Date: 2002-09-25 15:39:10
[Download RAW message or body]
bodo 25-Sep-2002 17:39:09
Modified: . CHANGES
ssl s23_clnt.c s23_srvr.c s2_clnt.c s2_lib.c s2_srvr.c
s3_clnt.c s3_lib.c s3_srvr.c t1_clnt.c t1_srvr.c
Log:
really fix race conditions
Submitted by: "Patrick McCormick" <patrick@tellme.com>
PR: 262
PR: 291
Revision Changes Path
1.1065 +3 -1 openssl/CHANGES
Index: CHANGES
===================================================================
RCS file: /e/openssl/cvs/openssl/CHANGES,v
retrieving revision 1.1064
retrieving revision 1.1065
diff -u -r1.1064 -r1.1065
--- CHANGES 2002/09/23 14:24:44 1.1064
+++ CHANGES 2002/09/25 15:38:47 1.1065
@@ -1931,7 +1931,9 @@
SSLv23_client_method(), SSLv23_server_method(),
SSLv2_client_method(), SSLv2_server_method(),
SSLv3_client_method(), SSLv3_server_method(),
- TLSv1_client_method(), TLSv1_server_method().
+ TLSv1_client_method(), TLSv1_server_method(),
+ ssl2_get_cipher_by_char(),
+ ssl3_get_cipher_by_char().
[Patrick McCormick <patrick@tellme.com>, Bodo Moeller]
*) Reorder cleanup sequence in SSL_CTX_free(): only remove the ex_data after
1.23 +8 -5 openssl/ssl/s23_clnt.c
1.45 +8 -5 openssl/ssl/s23_srvr.c
1.41 +8 -5 openssl/ssl/s2_clnt.c
1.44 +10 -6 openssl/ssl/s2_lib.c
1.41 +8 -5 openssl/ssl/s2_srvr.c
1.64 +8 -5 openssl/ssl/s3_clnt.c
1.63 +10 -7 openssl/ssl/s3_lib.c
1.97 +9 -6 openssl/ssl/s3_srvr.c
1.9 +9 -6 openssl/ssl/t1_clnt.c
1.9 +9 -6 openssl/ssl/t1_srvr.c
Index: s23_clnt.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s23_clnt.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- s23_clnt.c 2002/09/23 14:25:03 1.22
+++ s23_clnt.c 2002/09/25 15:38:55 1.23
@@ -89,11 +89,14 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&SSLv23_client_data,
- (char *)sslv23_base_method(),sizeof(SSL_METHOD));
- SSLv23_client_data.ssl_connect=ssl23_connect;
- SSLv23_client_data.get_ssl_method=ssl23_get_client_method;
- init=0;
+ if (init)
+ {
+ memcpy((char *)&SSLv23_client_data,
+ (char *)sslv23_base_method(),sizeof(SSL_METHOD));
+ SSLv23_client_data.ssl_connect=ssl23_connect;
+ SSLv23_client_data.get_ssl_method=ssl23_get_client_method;
+ init=0;
+ }
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
Index: s23_srvr.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s23_srvr.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- s23_srvr.c 2002/09/23 14:25:03 1.44
+++ s23_srvr.c 2002/09/25 15:38:55 1.45
@@ -141,11 +141,14 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&SSLv23_server_data,
- (char *)sslv23_base_method(),sizeof(SSL_METHOD));
- SSLv23_server_data.ssl_accept=ssl23_accept;
- SSLv23_server_data.get_ssl_method=ssl23_get_server_method;
- init=0;
+ if (init)
+ {
+ memcpy((char *)&SSLv23_server_data,
+ (char *)sslv23_base_method(),sizeof(SSL_METHOD));
+ SSLv23_server_data.ssl_accept=ssl23_accept;
+ SSLv23_server_data.get_ssl_method=ssl23_get_server_method;
+ init=0;
+ }
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
Index: s2_clnt.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s2_clnt.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- s2_clnt.c 2002/09/23 14:25:04 1.40
+++ s2_clnt.c 2002/09/25 15:38:55 1.41
@@ -147,11 +147,14 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&SSLv2_client_data,(char *)sslv2_base_method(),
- sizeof(SSL_METHOD));
- SSLv2_client_data.ssl_connect=ssl2_connect;
- SSLv2_client_data.get_ssl_method=ssl2_get_client_method;
- init=0;
+ if (init)
+ {
+ memcpy((char *)&SSLv2_client_data,(char *)sslv2_base_method(),
+ sizeof(SSL_METHOD));
+ SSLv2_client_data.ssl_connect=ssl2_connect;
+ SSLv2_client_data.get_ssl_method=ssl2_get_client_method;
+ init=0;
+ }
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
Index: s2_lib.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s2_lib.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- s2_lib.c 2002/08/03 18:49:39 1.43
+++ s2_lib.c 2002/09/25 15:38:56 1.44
@@ -377,15 +377,19 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL);
- for (i=0; i<SSL2_NUM_CIPHERS; i++)
- sorted[i]= &(ssl2_ciphers[i]);
+ if (init)
+ {
+ for (i=0; i<SSL2_NUM_CIPHERS; i++)
+ sorted[i]= &(ssl2_ciphers[i]);
- qsort( (char *)sorted,
- SSL2_NUM_CIPHERS,sizeof(SSL_CIPHER *),
- FP_ICC ssl_cipher_ptr_id_cmp);
+ qsort((char *)sorted,
+ SSL2_NUM_CIPHERS,sizeof(SSL_CIPHER *),
+ FP_ICC ssl_cipher_ptr_id_cmp);
+ init=0;
+ }
+
CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
- init=0;
}
id=0x02000000L|((unsigned long)p[0]<<16L)|
Index: s2_srvr.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s2_srvr.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- s2_srvr.c 2002/09/23 14:25:04 1.40
+++ s2_srvr.c 2002/09/25 15:38:56 1.41
@@ -147,11 +147,14 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&SSLv2_server_data,(char *)sslv2_base_method(),
- sizeof(SSL_METHOD));
- SSLv2_server_data.ssl_accept=ssl2_accept;
- SSLv2_server_data.get_ssl_method=ssl2_get_server_method;
- init=0;
+ if (init)
+ {
+ memcpy((char *)&SSLv2_server_data,(char *)sslv2_base_method(),
+ sizeof(SSL_METHOD));
+ SSLv2_server_data.ssl_accept=ssl2_accept;
+ SSLv2_server_data.get_ssl_method=ssl2_get_server_method;
+ init=0;
+ }
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
Index: s3_clnt.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s3_clnt.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- s3_clnt.c 2002/09/23 14:25:05 1.63
+++ s3_clnt.c 2002/09/25 15:38:56 1.64
@@ -180,11 +180,14 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&SSLv3_client_data,(char *)sslv3_base_method(),
- sizeof(SSL_METHOD));
- SSLv3_client_data.ssl_connect=ssl3_connect;
- SSLv3_client_data.get_ssl_method=ssl3_get_client_method;
- init=0;
+ if (init)
+ {
+ memcpy((char *)&SSLv3_client_data,(char *)sslv3_base_method(),
+ sizeof(SSL_METHOD));
+ SSLv3_client_data.ssl_connect=ssl3_connect;
+ SSLv3_client_data.get_ssl_method=ssl3_get_client_method;
+ init=0;
+ }
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
Index: s3_lib.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s3_lib.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- s3_lib.c 2002/08/09 08:56:03 1.62
+++ s3_lib.c 2002/09/25 15:38:56 1.63
@@ -1819,16 +1819,19 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL);
- for (i=0; i<SSL3_NUM_CIPHERS; i++)
- sorted[i]= &(ssl3_ciphers[i]);
+ if (init)
+ {
+ for (i=0; i<SSL3_NUM_CIPHERS; i++)
+ sorted[i]= &(ssl3_ciphers[i]);
- qsort( (char *)sorted,
- SSL3_NUM_CIPHERS,sizeof(SSL_CIPHER *),
- FP_ICC ssl_cipher_ptr_id_cmp);
+ qsort(sorted,
+ SSL3_NUM_CIPHERS,sizeof(SSL_CIPHER *),
+ FP_ICC ssl_cipher_ptr_id_cmp);
+ init=0;
+ }
+
CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
-
- init=0;
}
id=0x03000000L|((unsigned long)p[0]<<8L)|(unsigned long)p[1];
Index: s3_srvr.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/s3_srvr.c,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -r1.96 -r1.97
--- s3_srvr.c 2002/09/23 14:25:06 1.96
+++ s3_srvr.c 2002/09/25 15:38:57 1.97
@@ -183,12 +183,15 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&SSLv3_server_data,(char *)sslv3_base_method(),
- sizeof(SSL_METHOD));
- SSLv3_server_data.ssl_accept=ssl3_accept;
- SSLv3_server_data.get_ssl_method=ssl3_get_server_method;
- init=0;
-
+ if (init)
+ {
+ memcpy((char *)&SSLv3_server_data,(char *)sslv3_base_method(),
+ sizeof(SSL_METHOD));
+ SSLv3_server_data.ssl_accept=ssl3_accept;
+ SSLv3_server_data.get_ssl_method=ssl3_get_server_method;
+ init=0;
+ }
+
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
return(&SSLv3_server_data);
Index: t1_clnt.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/t1_clnt.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- t1_clnt.c 2002/09/23 14:25:07 1.8
+++ t1_clnt.c 2002/09/25 15:38:57 1.9
@@ -81,12 +81,15 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&TLSv1_client_data,(char *)tlsv1_base_method(),
- sizeof(SSL_METHOD));
- TLSv1_client_data.ssl_connect=ssl3_connect;
- TLSv1_client_data.get_ssl_method=tls1_get_client_method;
- init=0;
-
+ if (init)
+ {
+ memcpy((char *)&TLSv1_client_data,(char *)tlsv1_base_method(),
+ sizeof(SSL_METHOD));
+ TLSv1_client_data.ssl_connect=ssl3_connect;
+ TLSv1_client_data.get_ssl_method=tls1_get_client_method;
+ init=0;
+ }
+
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
return(&TLSv1_client_data);
Index: t1_srvr.c
===================================================================
RCS file: /e/openssl/cvs/openssl/ssl/t1_srvr.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- t1_srvr.c 2002/09/23 14:25:07 1.8
+++ t1_srvr.c 2002/09/25 15:38:57 1.9
@@ -82,12 +82,15 @@
{
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);
- memcpy((char *)&TLSv1_server_data,(char *)tlsv1_base_method(),
- sizeof(SSL_METHOD));
- TLSv1_server_data.ssl_accept=ssl3_accept;
- TLSv1_server_data.get_ssl_method=tls1_get_server_method;
- init=0;
-
+ if (init)
+ {
+ memcpy((char *)&TLSv1_server_data,(char *)tlsv1_base_method(),
+ sizeof(SSL_METHOD));
+ TLSv1_server_data.ssl_accept=ssl3_accept;
+ TLSv1_server_data.get_ssl_method=tls1_get_server_method;
+ init=0;
+ }
+
CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
}
return(&TLSv1_server_data);
______________________________________________________________________
OpenSSL Project http://www.openssl.org
CVS Repository Commit List openssl-cvs@openssl.org
Automated List Manager majordomo@openssl.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic