mirror of
https://github.com/monero-project/monero.git
synced 2025-07-29 13:58:39 -04:00
fix accessing an network address in a deleted context
Both drop_connection and add_host_fail can drop the connection, which invalidates the context, and thus the address it contains. Thanks to wfaressuissia[m] for lots of help and prodding when debugging this
This commit is contained in:
parent
16c780d568
commit
4e74385a1a
2 changed files with 15 additions and 9 deletions
|
@ -2835,12 +2835,15 @@ skip:
|
|||
epee::string_tools::to_string_hex(context.m_pruning_seed) <<
|
||||
"), score " << score << ", flush_all_spans " << flush_all_spans);
|
||||
|
||||
if (score > 0)
|
||||
m_p2p->add_host_fail(context.m_remote_address, score);
|
||||
|
||||
m_block_queue.flush_spans(context.m_connection_id, flush_all_spans);
|
||||
|
||||
// copy since dropping the connection will invalidate the context, and thus the address
|
||||
const auto remote_address = context.m_remote_address;
|
||||
|
||||
m_p2p->drop_connection(context);
|
||||
|
||||
if (score > 0)
|
||||
m_p2p->add_host_fail(remote_address, score);
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
template<class t_core>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue