Browse Source

Wallet: Move multiwallet sanity checks to CWallet::Verify, and do other checks on all wallets

0.15
Luke Dashjr 8 years ago
parent
commit
008c360083
  1. 22
      src/wallet/wallet.cpp

22
src/wallet/wallet.cpp

@ -440,8 +440,16 @@ bool CWallet::Verify()
if (GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) if (GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET))
return true; return true;
uiInterface.InitMessage(_("Verifying wallet...")); SoftSetArg("-wallet", DEFAULT_WALLET_DAT);
std::string walletFile = GetArg("-wallet", DEFAULT_WALLET_DAT);
uiInterface.InitMessage(_("Verifying wallet(s)..."));
for (const std::string& walletFile : gArgs.GetArgs("-wallet")) {
if (boost::filesystem::path(walletFile).filename() != walletFile) {
return InitError(_("-wallet parameter must only specify a filename (not a path)"));
} else if (SanitizeString(walletFile, SAFE_CHARS_FILENAME) != walletFile) {
return InitError(_("Invalid characters in -wallet filename"));
}
std::string strError; std::string strError;
if (!CWalletDB::VerifyEnvironment(walletFile, GetDataDir().string(), strError)) if (!CWalletDB::VerifyEnvironment(walletFile, GetDataDir().string(), strError))
@ -464,6 +472,8 @@ bool CWallet::Verify()
InitError(strError); InitError(strError);
return false; return false;
} }
}
return true; return true;
} }
@ -3930,15 +3940,7 @@ bool CWallet::InitLoadWallet()
return true; return true;
} }
SoftSetArg("-wallet", DEFAULT_WALLET_DAT);
for (const std::string& walletFile : gArgs.GetArgs("-wallet")) { for (const std::string& walletFile : gArgs.GetArgs("-wallet")) {
if (boost::filesystem::path(walletFile).filename() != walletFile) {
return InitError(_("-wallet parameter must only specify a filename (not a path)"));
} else if (SanitizeString(walletFile, SAFE_CHARS_FILENAME) != walletFile) {
return InitError(_("Invalid characters in -wallet filename"));
}
CWallet * const pwallet = CreateWalletFromFile(walletFile); CWallet * const pwallet = CreateWalletFromFile(walletFile);
if (!pwallet) { if (!pwallet) {
return false; return false;

Loading…
Cancel
Save