summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Larsch <nils@openssl.org>2005-08-08 19:39:29 +0000
committerNils Larsch <nils@openssl.org>2005-08-08 19:39:29 +0000
commitcf1546a60e1de07a2d184f1ab9d29202c138b484 (patch)
tree75668aca7b57b847e21590ca7ec832f9e3ee1ba1
parente7eec05af02c2516c4dbedaf48b72c69a92a6d15 (diff)
downloadopenssl-cf1546a60e1de07a2d184f1ab9d29202c138b484.tar.gz
a ssl object needs it's own instance of a ecdh key; remove obsolete comment
-rw-r--r--ssl/s3_lib.c6
-rw-r--r--ssl/ssl_cert.c9
2 files changed, 9 insertions, 6 deletions
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index a1a32dbdd5..b531986f05 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -1805,12 +1805,12 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_ECDH_LIB);
return 0;
}
- if (!EC_KEY_up_ref((EC_KEY *)parg))
+ ecdh = EC_KEY_dup((EC_KEY *)parg);
+ if (ecdh == NULL)
{
- SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_ECDH_LIB);
+ SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_EC_LIB);
return 0;
}
- ecdh = (EC_KEY *)parg;
if (!(ctx->options & SSL_OP_SINGLE_ECDH_USE))
{
if (!EC_KEY_generate_key(ecdh))
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 997528e97d..7908dcccdb 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -200,7 +200,6 @@ CERT *ssl_cert_dup(CERT *cert)
#ifndef OPENSSL_NO_DH
if (cert->dh_tmp != NULL)
{
- /* DH parameters don't have a reference count */
ret->dh_tmp = DHparams_dup(cert->dh_tmp);
if (ret->dh_tmp == NULL)
{
@@ -234,8 +233,12 @@ CERT *ssl_cert_dup(CERT *cert)
#ifndef OPENSSL_NO_ECDH
if (cert->ecdh_tmp)
{
- EC_KEY_up_ref(cert->ecdh_tmp);
- ret->ecdh_tmp = cert->ecdh_tmp;
+ ret->ecdh_tmp = EC_KEY_dup(cert->ecdh_tmp);
+ if (ret->ecdh_tmp == NULL)
+ {
+ SSLerr(SSL_F_SSL_CERT_DUP, ERR_R_EC_LIB);
+ goto err;
+ }
}
ret->ecdh_tmp_cb = cert->ecdh_tmp_cb;
#endif