diff options
author | Jonas Schnelli <dev@jonasschnelli.ch> | 2017-05-05 08:53:39 +0200 |
---|---|---|
committer | Jonas Schnelli <dev@jonasschnelli.ch> | 2018-07-12 20:31:57 +0100 |
commit | cebefba0855cee7fbcb9474b34e6779369e8e9ce (patch) | |
tree | d19414305e656bb6951f43714c777e0853a57c6a /src/wallet/walletdb.cpp | |
parent | 9995a602a639b64a749545b7c3bafbf67f97324f (diff) |
Add option to disable private keys during internal wallet creation
Diffstat (limited to 'src/wallet/walletdb.cpp')
-rw-r--r-- | src/wallet/walletdb.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index 8caf7e4e66..020b7c7989 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -513,7 +513,10 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, } else if (strType == "flags") { uint64_t flags; ssValue >> flags; - pwallet->SetWalletFlags(flags, true); + if (!pwallet->SetWalletFlags(flags, true)) { + strErr = "Error reading wallet database: Unknown non-tolerable wallet flags found"; + return false; + } } else if (strType != "bestblock" && strType != "bestblock_nomerkle") { wss.m_unknown_records++; } @@ -574,10 +577,12 @@ DBErrors WalletBatch::LoadWallet(CWallet* pwallet) { // losing keys is considered a catastrophic error, anything else // we assume the user can live with: - if (IsKeyType(strType) || strType == "defaultkey") + if (IsKeyType(strType) || strType == "defaultkey") { result = DBErrors::CORRUPT; - else - { + } else if(strType == "flags") { + // reading the wallet flags can only fail if unknown flags are present + result = DBErrors::TOO_NEW; + } else { // Leave other errors alone, if we try to fix them we might make things worse. fNoncriticalErrors = true; // ... but do warn the user there is something wrong. if (strType == "tx") |