Browse Source

Reject invalid pubkeys when reading ckey items from the wallet.

This makes the behavior more consistent with key objects and will
 reject some corrupted pubkeys (e.g. zero length).
0.13
Gregory Maxwell 9 years ago
parent
commit
30d9662bd7
  1. 7
      src/wallet/walletdb.cpp

7
src/wallet/walletdb.cpp

@ -512,8 +512,13 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
} }
else if (strType == "ckey") else if (strType == "ckey")
{ {
vector<unsigned char> vchPubKey; CPubKey vchPubKey;
ssKey >> vchPubKey; ssKey >> vchPubKey;
if (!vchPubKey.IsValid())
{
strErr = "Error reading wallet database: CPubKey corrupt";
return false;
}
vector<unsigned char> vchPrivKey; vector<unsigned char> vchPrivKey;
ssValue >> vchPrivKey; ssValue >> vchPrivKey;
wss.nCKeys++; wss.nCKeys++;

Loading…
Cancel
Save