fix race condition
[openssl.git] / ssl / s3_clnt.c
index 74e1e529f88f014b9bc9757efacfff39d8b63b8d..ca15881eaf2713e20e887a9fe05b9789fe6be4a3 100644 (file)
@@ -178,11 +178,11 @@ SSL_METHOD *SSLv3_client_method(void)
 
        if (init)
                {
-               init=0;
                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;
                }
        return(&SSLv3_client_data);
        }
@@ -1349,7 +1349,7 @@ static int ssl3_get_key_exchange(SSL *s)
                else
 #endif
 #ifndef OPENSSL_NO_ECDSA
-                       if (pkey->type == EVP_PKEY_ECDSA)
+                       if (pkey->type == EVP_PKEY_EC)
                        {
                        /* let's do ECDSA */
                        EVP_VerifyInit_ex(&md_ctx,EVP_ecdsa(), NULL);
@@ -1889,7 +1889,7 @@ static int ssl3_send_client_key_exchange(SSL *s)
                                 *
                                 * if ((s->cert->key->privatekey != NULL) &&
                                 *     (s->cert->key->privatekey->type ==
-                                *      EVP_PKEY_ECC) && ...)
+                                *      EVP_PKEY_EC) && ...)
                                 * ecdh_clnt_cert = 1;
                                 */
                                }
@@ -1907,7 +1907,7 @@ static int ssl3_send_client_key_exchange(SSL *s)
                                srvr_pub_pkey = X509_get_pubkey(s->session-> \
                                    sess_cert->peer_pkeys[SSL_PKEY_ECC].x509);
                                if ((srvr_pub_pkey == NULL) ||
-                                   (srvr_pub_pkey->type != EVP_PKEY_ECDSA) ||
+                                   (srvr_pub_pkey->type != EVP_PKEY_EC) ||
                                    (srvr_pub_pkey->pkey.eckey == NULL))
                                        {
                                        SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
@@ -2118,7 +2118,7 @@ static int ssl3_send_client_verify(SSL *s)
                else
 #endif
 #ifndef OPENSSL_NO_ECDSA
-                       if (pkey->type == EVP_PKEY_ECDSA)
+                       if (pkey->type == EVP_PKEY_EC)
                        {
                        if (!ECDSA_sign(pkey->save_type,
                                &(data[MD5_DIGEST_LENGTH]),