mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-20 07:09:15 +01:00
Check that tx_relay is initialized before access
This commit is contained in:
18
src/net.cpp
18
src/net.cpp
@@ -499,9 +499,11 @@ void CNode::copyStats(CNodeStats &stats)
|
||||
X(nServices);
|
||||
X(addr);
|
||||
X(addrBind);
|
||||
{
|
||||
if (m_tx_relay != nullptr) {
|
||||
LOCK(m_tx_relay->cs_filter);
|
||||
stats.fRelayTxes = m_tx_relay->fRelayTxes;
|
||||
} else {
|
||||
stats.fRelayTxes = false;
|
||||
}
|
||||
X(nLastSend);
|
||||
X(nLastRecv);
|
||||
@@ -528,9 +530,11 @@ void CNode::copyStats(CNodeStats &stats)
|
||||
}
|
||||
X(m_legacyWhitelisted);
|
||||
X(m_permissionFlags);
|
||||
{
|
||||
if (m_tx_relay != nullptr) {
|
||||
LOCK(m_tx_relay->cs_feeFilter);
|
||||
stats.minFeeFilter = m_tx_relay->minFeeFilter;
|
||||
} else {
|
||||
stats.minFeeFilter = 0;
|
||||
}
|
||||
|
||||
// It is common for nodes with good ping times to suddenly become lagged,
|
||||
@@ -818,11 +822,17 @@ bool CConnman::AttemptToEvictConnection()
|
||||
continue;
|
||||
if (node->fDisconnect)
|
||||
continue;
|
||||
LOCK(node->m_tx_relay->cs_filter);
|
||||
bool peer_relay_txes = false;
|
||||
bool peer_filter_not_null = false;
|
||||
if (node->m_tx_relay != nullptr) {
|
||||
LOCK(node->m_tx_relay->cs_filter);
|
||||
peer_relay_txes = node->m_tx_relay->fRelayTxes;
|
||||
peer_filter_not_null = node->m_tx_relay->pfilter != nullptr;
|
||||
}
|
||||
NodeEvictionCandidate candidate = {node->GetId(), node->nTimeConnected, node->nMinPingUsecTime,
|
||||
node->nLastBlockTime, node->nLastTXTime,
|
||||
HasAllDesirableServiceFlags(node->nServices),
|
||||
node->m_tx_relay->fRelayTxes, node->m_tx_relay->pfilter != nullptr, node->addr, node->nKeyedNetGroup,
|
||||
peer_relay_txes, peer_filter_not_null, node->addr, node->nKeyedNetGroup,
|
||||
node->m_prefer_evict};
|
||||
vEvictionCandidates.push_back(candidate);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user