Commit 4baee303 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 db7a72b2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@

 Changes between 0.9.8x and 0.9.8y [xx XXX xxxx]

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

 Changes between 0.9.8w and 0.9.8x [10 May 2012]

+4 −1
Original line number Diff line number Diff line
@@ -371,12 +371,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);
err: