Commit bef20d4a authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

PR: 2813

Reported by: Constantine Sapuntzakis <csapuntz@gmail.com>

Fix possible deadlock when decoding public keys.
parent dddddb2e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@

 Changes between 1.0.0j and 1.0.0k [xx XXX xxxx]

  *)
  *) Fix possible deadlock when decoding public keys.
     [Steve Henson]

 Changes between 1.0.0i and 1.0.0j [10 May 2012]

+4 −1
Original line number Diff line number Diff line
@@ -175,12 +175,15 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
	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_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY);

	return ret;