diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2016-09-07 09:41:20 -0400 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2016-09-07 09:42:50 -0400 |
commit | b7d2480c820531df2a5a300a7b24bbaa7755c288 (patch) | |
tree | e66340beb2ec9e2da64c6527ec66a03786644fea /crypto/evp | |
parent | e9590d00fc7c269f3e90b93cf6ac17238f0ca2c6 (diff) |
GH1537: Avoid double-free in the EVP_PKEY API
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit d65c3615f6c658478503f4862f8055203a98038c)
Diffstat (limited to 'crypto/evp')
-rw-r--r-- | crypto/evp/p_lib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index a4dcf581c7..9828620552 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -398,6 +398,7 @@ void EVP_PKEY_free(EVP_PKEY *x) return; REF_ASSERT_ISNT(i < 0); EVP_PKEY_free_it(x); + CRYPTO_THREAD_lock_free(x->lock); sk_X509_ATTRIBUTE_pop_free(x->attributes, X509_ATTRIBUTE_free); OPENSSL_free(x); } @@ -413,7 +414,6 @@ static void EVP_PKEY_free_it(EVP_PKEY *x) ENGINE_finish(x->engine); x->engine = NULL; #endif - CRYPTO_THREAD_lock_free(x->lock); } static int unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent, |