aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorCarl Dong <contact@carldong.me>2021-02-22 11:46:21 -0500
committerCarl Dong <contact@carldong.me>2021-02-22 11:46:37 -0500
commit9da106be4db692fa5db7b4de79f9cf7bfef37075 (patch)
tree6b2740bfba52c1b4402893c892770fdcce56d109 /src/validation.cpp
parent7fca189a2a9a524834d9485c4e391877c00c1971 (diff)
downloadbitcoin-9da106be4db692fa5db7b4de79f9cf7bfef37075.tar.xz
validation: Check chain tip is non-null in CheckFinalTx
...also update comments to remove mention of ::ChainActive() From: https://github.com/bitcoin/bitcoin/pull/20750#discussion_r579400663 > Also, what about passing a const reference instead of a pointer? I > know this is only theoretical, but previously if the tip was nullptr, > then Height() evaluated to -1, now it evaluates to UB
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index 0b2ca4b422..a57a1cc211 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -211,6 +211,7 @@ static FlatFileSeq UndoFileSeq();
bool CheckFinalTx(const CBlockIndex* active_chain_tip, const CTransaction &tx, int flags)
{
AssertLockHeld(cs_main);
+ assert(active_chain_tip); // TODO: Make active_chain_tip a reference
assert(std::addressof(*::ChainActive().Tip()) == std::addressof(*active_chain_tip));
// By convention a negative value for flags indicates that the
@@ -221,12 +222,12 @@ bool CheckFinalTx(const CBlockIndex* active_chain_tip, const CTransaction &tx, i
// scheduled, so no flags are set.
flags = std::max(flags, 0);
- // CheckFinalTx() uses ::ChainActive().Height()+1 to evaluate
+ // CheckFinalTx() uses active_chain_tip.Height()+1 to evaluate
// nLockTime because when IsFinalTx() is called within
// CBlock::AcceptBlock(), the height of the block *being*
// evaluated is what is used. Thus if we want to know if a
// transaction can be part of the *next* block, we need to call
- // IsFinalTx() with one more than ::ChainActive().Height().
+ // IsFinalTx() with one more than active_chain_tip.Height().
const int nBlockHeight = active_chain_tip->nHeight + 1;
// BIP113 requires that time-locked transactions have nLockTime set to