mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-05 10:12:48 +01:00
Merge #15710: wallet: Catch ios_base::failure specifically
7486e2771eTests: Unit test related to WalletDB ReadKeyValue (Bushstar)32def8d1c2Catch ios_base::failure specifically (Peter Bushnell) Pull request description: In https://github.com/bitcoin/bitcoin/pull/2950 a hash of the pubkey and private was added to speed up key import, this was made backwards compatible by reading the hash in a try block with an ellipses catch all in case the hash was not present. CDataStream::read() specifically throws std::ios_base::failure, backwards compatibility expects only that error to be thrown, if something else gets thrown we should not be catching it. The change in this commit is to catch that exception only. If any other exception is thrown other than std::ios_base::failure it will be caught by the wider try block and an error written to the log and/or console. CDataStream::read() throwing std::ios_base::failure.2c364fde42/src/streams.h (L191)Wider catch statements that pick up all others exceptions other than ios_base::failure.2c364fde42/src/wallet/walletdb.cpp (L425)2c364fde42/src/wallet/walletdb.cpp (L430)ACKs for top commit: laanwj: Code review ACK7486e2771eTree-SHA512: 5364bf935af8ec603bf5b8fef8c23b5cdaa4fe3506090cff988413221f2eaa99f7a91929afb42a35f8881ce2328744a0d32052da51ca0a5b2e65b6809e97f604
This commit is contained in:
@@ -362,7 +362,7 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
|
||||
{
|
||||
ssValue >> hash;
|
||||
}
|
||||
catch (...) {}
|
||||
catch (const std::ios_base::failure&) {}
|
||||
|
||||
bool fSkipCheck = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user