blob: b2e8e2b2e5c231e5479a4a953630c3edd9f021d9 [file] [log] [blame]
Index: openssl/crypto/asn1/x_pubkey.c
RCS File: /v/openssl/cvs/openssl/crypto/asn1/x_pubkey.c,v
rcsdiff -q -kk '-r1.38.2.2' '-r1.38.2.3' -u '/v/openssl/cvs/openssl/crypto/asn1/x_pubkey.c,v' 2>/dev/null
--- x_pubkey.c 2012/02/28 14:47:36 1.38.2.2
+++ x_pubkey.c 2012/05/11 13:49:15 1.38.2.3
@@ -371,12 +371,15 @@
CRYPTO_w_lock(CRYPTO_LOCK_EVP_PKEY);
if (key->pkey)
{
+ CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
EVP_PKEY_free(ret);
ret = key->pkey;
}
else
+ {
key->pkey = ret;
- CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
+ CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
+ }
CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY);
return(ret);
err: