aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2017-08-28 09:24:17 +0200
committerpracticalswift <practicalswift@users.noreply.github.com>2017-09-06 10:45:37 +0200
commitfdc329376c8a0fa4dffd0cd2599a494a64c38472 (patch)
tree2e2052bb1fced6b82e6eb58adb64c7c9bf23fcf8 /src/validation.cpp
parent6866b4912b8013ed748d12250209f7079a3c92e6 (diff)
downloadbitcoin-fdc329376c8a0fa4dffd0cd2599a494a64c38472.tar.xz
Document assumptions that are being made to avoid NULL pointer dereferences
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index 3b9636839d..939921d677 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -1710,6 +1710,7 @@ static bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockInd
// before the first had been spent. Since those coinbases are sufficiently buried its no longer possible to create further
// duplicate transactions descending from the known pairs either.
// If we're on the known chain at height greater than where BIP34 activated, we can save the db accesses needed for the BIP30 check.
+ assert(pindex->pprev);
CBlockIndex *pindexBIP34height = pindex->pprev->GetAncestor(chainparams.GetConsensus().BIP34Height);
//Only continue to enforce if we're below BIP34 activation height or the block hash at that height doesn't correspond.
fEnforceBIP30 = fEnforceBIP30 && (!pindexBIP34height || !(pindexBIP34height->GetBlockHash() == chainparams.GetConsensus().BIP34Hash));
@@ -1849,6 +1850,7 @@ static bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockInd
if (!pblocktree->WriteTxIndex(vPos))
return AbortNode(state, "Failed to write transaction index");
+ assert(pindex->phashBlock);
// add this block to the view's block chain
view.SetBestBlock(pindex->GetBlockHash());