diff options
author | glozow <gloriajzhao@gmail.com> | 2024-03-13 11:25:24 +0000 |
---|---|---|
committer | glozow <gloriajzhao@gmail.com> | 2024-04-16 10:09:45 +0100 |
commit | 6f4da19cc3b1b7cd23cb4be95a6bb9acb79eb3bf (patch) | |
tree | ee6049fd4b0cd42c274baa231cca12f5be81f0e4 /src/net_processing.cpp | |
parent | bdb33ec51986570ea17406c83bad2c955ae23186 (diff) |
guard against MempoolAcceptResult::m_replaced_transactions
It should never be a nullopt when the transaction result is valid -
Assume() this is the case. However, as a belt-and-suspenders just in
case it is nullopt, use an empty list.
Diffstat (limited to 'src/net_processing.cpp')
-rw-r--r-- | src/net_processing.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 39ffff97d2..07ac1cfec7 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -4354,7 +4354,9 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type, const TxValidationState& state = result.m_state; if (result.m_result_type == MempoolAcceptResult::ResultType::VALID) { - ProcessValidTx(pfrom.GetId(), ptx, result.m_replaced_transactions.value()); + Assume(result.m_replaced_transactions.has_value()); + std::list<CTransactionRef> empty_replacement_list; + ProcessValidTx(pfrom.GetId(), ptx, result.m_replaced_transactions.value_or(empty_replacement_list)); pfrom.m_last_tx_time = GetTime<std::chrono::seconds>(); } else if (state.GetResult() == TxValidationResult::TX_MISSING_INPUTS) |