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).
pull/262/head
Gregory Maxwell 9 years ago
parent 725539ea03
commit 30d9662bd7

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

Loading…
Cancel
Save