Fix incorrect locking in CCryptoKeyStore

This commit is contained in:
Jack Grigg 2016-10-31 19:57:30 -05:00
parent 1feaefac51
commit 1749dd69c7
No known key found for this signature in database
GPG Key ID: 6A6914DAFBEA00DA
2 changed files with 3 additions and 3 deletions

View File

@ -153,7 +153,7 @@ static bool DecryptSpendingKey(const CKeyingMaterial& vMasterKey,
bool CCryptoKeyStore::SetCrypted() bool CCryptoKeyStore::SetCrypted()
{ {
LOCK(cs_KeyStore); LOCK2(cs_KeyStore, cs_SpendingKeyStore);
if (fUseCrypto) if (fUseCrypto)
return true; return true;
if (!(mapKeys.empty() && mapSpendingKeys.empty())) if (!(mapKeys.empty() && mapSpendingKeys.empty()))
@ -179,7 +179,7 @@ bool CCryptoKeyStore::Lock()
bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn) bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn)
{ {
{ {
LOCK(cs_KeyStore); LOCK2(cs_KeyStore, cs_SpendingKeyStore);
if (!SetCrypted()) if (!SetCrypted())
return false; return false;

View File

@ -207,7 +207,7 @@ public:
bool HaveSpendingKey(const libzcash::PaymentAddress &address) const bool HaveSpendingKey(const libzcash::PaymentAddress &address) const
{ {
{ {
LOCK(cs_KeyStore); LOCK(cs_SpendingKeyStore);
if (!IsCrypted()) if (!IsCrypted())
return CBasicKeyStore::HaveSpendingKey(address); return CBasicKeyStore::HaveSpendingKey(address);
return mapCryptedSpendingKeys.count(address) > 0; return mapCryptedSpendingKeys.count(address) > 0;