| 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: |