mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
Fix data race condition in BanMan::DumpBanlist()
The m_is_dirty value being read in BannedSetIsDirty() can differ from the value being set in SweepBanned(), i.e., be inconsistent with a BanMan instance internal state.
This commit is contained in:
@@ -43,9 +43,11 @@ void BanMan::DumpBanlist()
|
||||
static Mutex dump_mutex;
|
||||
LOCK(dump_mutex);
|
||||
|
||||
SweepBanned(); // clean unused entries (if bantime has expired)
|
||||
|
||||
{
|
||||
LOCK(m_cs_banned);
|
||||
SweepBanned();
|
||||
if (!BannedSetIsDirty()) return;
|
||||
}
|
||||
|
||||
int64_t n_start = GetTimeMillis();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user