Fix issue where CDataStream->nVersion was taken a CKeyPool record version

This commit is contained in:
Jonas Schnelli 2017-01-16 11:10:12 +01:00
parent 9af8f00a75
commit d0a627a53a
No known key found for this signature in database
GPG key ID: 1EB776BB03C7922D
2 changed files with 11 additions and 5 deletions

View file

@ -3933,6 +3933,7 @@ bool CWallet::BackupWallet(const std::string& strDest)
CKeyPool::CKeyPool()
{
nTime = GetTime();
fInternal = false;
}
CKeyPool::CKeyPool(const CPubKey& vchPubKeyIn, bool internalIn)

View file

@ -114,12 +114,17 @@ public:
READWRITE(nVersion);
READWRITE(nTime);
READWRITE(vchPubKey);
if (nVersion >= FEATURE_HD_SPLIT)
READWRITE(fInternal);
else
{
if (ser_action.ForRead())
if (ser_action.ForRead()) {
try {
READWRITE(fInternal);
}
catch (...) {
/* flag as external address if we can't read the internal boolean */
fInternal = false;
}
}
else {
READWRITE(fInternal);
}
}
};