mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-21 15:50:07 +01:00
Always check return values of TxnBegin() and TxnCommit()
This commit is contained in:
@@ -840,7 +840,8 @@ Value movecmd(const Array& params, bool fHelp)
|
||||
strComment = params[4].get_str();
|
||||
|
||||
CWalletDB walletdb(pwalletMain->strWalletFile);
|
||||
walletdb.TxnBegin();
|
||||
if (!walletdb.TxnBegin())
|
||||
throw JSONRPCError(-20, "database error");
|
||||
|
||||
int64 nNow = GetAdjustedTime();
|
||||
|
||||
@@ -862,7 +863,8 @@ Value movecmd(const Array& params, bool fHelp)
|
||||
credit.strComment = strComment;
|
||||
walletdb.WriteAccountingEntry(credit);
|
||||
|
||||
walletdb.TxnCommit();
|
||||
if (!walletdb.TxnCommit())
|
||||
throw JSONRPCError(-20, "database error");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
12
src/main.cpp
12
src/main.cpp
@@ -1496,7 +1496,9 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew)
|
||||
{
|
||||
uint256 hash = GetHash();
|
||||
|
||||
txdb.TxnBegin();
|
||||
if (!txdb.TxnBegin())
|
||||
return error("SetBestChain() : TxnBegin failed");
|
||||
|
||||
if (pindexGenesisBlock == NULL && hash == hashGenesisBlock)
|
||||
{
|
||||
txdb.WriteHashBestChain(hash);
|
||||
@@ -1545,7 +1547,10 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew)
|
||||
printf("SetBestChain() : ReadFromDisk failed\n");
|
||||
break;
|
||||
}
|
||||
txdb.TxnBegin();
|
||||
if (!txdb.TxnBegin()) {
|
||||
printf("SetBestChain() : TxnBegin 2 failed\n");
|
||||
break;
|
||||
}
|
||||
// errors now are not fatal, we still did a reorganisation to a new chain in a valid way
|
||||
if (!block.SetBestChainInner(txdb, pindex))
|
||||
break;
|
||||
@@ -1603,7 +1608,8 @@ bool CBlock::AddToBlockIndex(unsigned int nFile, unsigned int nBlockPos)
|
||||
pindexNew->bnChainWork = (pindexNew->pprev ? pindexNew->pprev->bnChainWork : 0) + pindexNew->GetBlockWork();
|
||||
|
||||
CTxDB txdb;
|
||||
txdb.TxnBegin();
|
||||
if (!txdb.TxnBegin())
|
||||
return false;
|
||||
txdb.WriteBlockIndex(CDiskBlockIndex(pindexNew));
|
||||
if (!txdb.TxnCommit())
|
||||
return false;
|
||||
|
||||
@@ -234,7 +234,8 @@ bool CWallet::EncryptWallet(const SecureString& strWalletPassphrase)
|
||||
if (fFileBacked)
|
||||
{
|
||||
pwalletdbEncryption = new CWalletDB(strWalletFile);
|
||||
pwalletdbEncryption->TxnBegin();
|
||||
if (!pwalletdbEncryption->TxnBegin())
|
||||
return false;
|
||||
pwalletdbEncryption->WriteMasterKey(nMasterKeyMaxID, kMasterKey);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user