From: Geoff Thorpe Date: Sat, 25 Aug 2001 17:28:23 +0000 (+0000) Subject: Changes crypto/evp/ and ssl/ code from directly incrementing reference X-Git-Tag: OpenSSL_0_9_6c~123^2~59 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=78435364ec450408b63acef65494dbe16a97792a Changes crypto/evp/ and ssl/ code from directly incrementing reference counts in DH, DSA, and RSA structures. Instead they use the new "***_up()" functions that handle this. --- diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index 1fd0d19aee..86178f1db3 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -210,7 +210,8 @@ int EVP_PKEY_assign(EVP_PKEY *pkey, int type, char *key) int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key) { int ret = EVP_PKEY_assign_RSA(pkey, key); - if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_RSA); + if(ret) + RSA_up(key); return ret; } @@ -220,7 +221,7 @@ RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey) EVPerr(EVP_F_EVP_PKEY_GET1_RSA, EVP_R_EXPECTING_AN_RSA_KEY); return NULL; } - CRYPTO_add(&pkey->pkey.rsa->references, 1, CRYPTO_LOCK_RSA); + RSA_up(pkey->pkey.rsa); return pkey->pkey.rsa; } #endif @@ -229,7 +230,8 @@ RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey) int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) { int ret = EVP_PKEY_assign_DSA(pkey, key); - if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_DSA); + if(ret) + DSA_up(key); return ret; } @@ -239,7 +241,7 @@ DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey) EVPerr(EVP_F_EVP_PKEY_GET1_DSA, EVP_R_EXPECTING_A_DSA_KEY); return NULL; } - CRYPTO_add(&pkey->pkey.dsa->references, 1, CRYPTO_LOCK_DSA); + DSA_up(pkey->pkey.dsa); return pkey->pkey.dsa; } #endif @@ -249,7 +251,8 @@ DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey) int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) { int ret = EVP_PKEY_assign_DH(pkey, key); - if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_DH); + if(ret) + DH_up(key); return ret; } @@ -259,7 +262,7 @@ DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey) EVPerr(EVP_F_EVP_PKEY_GET1_DH, EVP_R_EXPECTING_A_DH_KEY); return NULL; } - CRYPTO_add(&pkey->pkey.dh->references, 1, CRYPTO_LOCK_DH); + DH_up(pkey->pkey.dh); return pkey->pkey.dh; } #endif diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c index fd9b3f00ad..af65e2e68a 100644 --- a/ssl/s3_srvr.c +++ b/ssl/s3_srvr.c @@ -982,7 +982,7 @@ static int ssl3_send_server_key_exchange(SSL *s) SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,SSL_R_ERROR_GENERATING_TMP_RSA_KEY); goto f_err; } - CRYPTO_add(&rsa->references,1,CRYPTO_LOCK_RSA); + RSA_up(rsa); cert->rsa_tmp=rsa; } if (rsa == NULL) diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c index 6990ec49bb..ab2e00969a 100644 --- a/ssl/ssl_cert.c +++ b/ssl/ssl_cert.c @@ -190,8 +190,8 @@ CERT *ssl_cert_dup(CERT *cert) #ifndef OPENSSL_NO_RSA if (cert->rsa_tmp != NULL) { + RSA_up(cert->rsa_tmp); ret->rsa_tmp = cert->rsa_tmp; - CRYPTO_add(&ret->rsa_tmp->references, 1, CRYPTO_LOCK_RSA); } ret->rsa_tmp_cb = cert->rsa_tmp_cb; #endif diff --git a/ssl/ssl_rsa.c b/ssl/ssl_rsa.c index 80d9f79812..e6d7f386b4 100644 --- a/ssl/ssl_rsa.c +++ b/ssl/ssl_rsa.c @@ -170,7 +170,7 @@ int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa) return(0); } - CRYPTO_add(&rsa->references,1,CRYPTO_LOCK_RSA); + RSA_up(rsa); EVP_PKEY_assign_RSA(pkey,rsa); ret=ssl_set_pkey(ssl->cert,pkey); @@ -582,7 +582,7 @@ int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa) return(0); } - CRYPTO_add(&rsa->references,1,CRYPTO_LOCK_RSA); + RSA_up(rsa); EVP_PKEY_assign_RSA(pkey,rsa); ret=ssl_set_pkey(ctx->cert, pkey);