From: Dr. Stephen Henson Date: Tue, 27 Jun 2006 17:23:24 +0000 (+0000) Subject: Fix EVP_PKEY_CTX_dup() to return correct value and handle NULL keys in X-Git-Tag: OpenSSL_0_9_8k^2~1238 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=944f858021afb04ba4758b19716b118108ac3fcf;p=oweals%2Fopenssl.git Fix EVP_PKEY_CTX_dup() to return correct value and handle NULL keys in the source. --- diff --git a/crypto/evp/pmeth_lib.c b/crypto/evp/pmeth_lib.c index 49a8ee99cb..5b8000d691 100644 --- a/crypto/evp/pmeth_lib.c +++ b/crypto/evp/pmeth_lib.c @@ -252,23 +252,21 @@ EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx) #endif if (pctx->pkey) - { CRYPTO_add(&pctx->pkey->references,1,CRYPTO_LOCK_EVP_PKEY); - rctx->pkey = pctx->pkey; - } + + rctx->pkey = pctx->pkey; if (pctx->peerkey) - { CRYPTO_add(&pctx->peerkey->references,1,CRYPTO_LOCK_EVP_PKEY); - rctx->peerkey = pctx->peerkey; - } + + rctx->peerkey = pctx->peerkey; rctx->data = NULL; rctx->app_data = NULL; rctx->operation = pctx->operation; if (pctx->pmeth->copy(rctx, pctx) > 0) - return pctx; + return rctx; EVP_PKEY_CTX_free(rctx); return NULL;