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;
|
static Mutex dump_mutex;
|
||||||
LOCK(dump_mutex);
|
LOCK(dump_mutex);
|
||||||
|
|
||||||
SweepBanned(); // clean unused entries (if bantime has expired)
|
{
|
||||||
|
LOCK(m_cs_banned);
|
||||||
|
SweepBanned();
|
||||||
if (!BannedSetIsDirty()) return;
|
if (!BannedSetIsDirty()) return;
|
||||||
|
}
|
||||||
|
|
||||||
int64_t n_start = GetTimeMillis();
|
int64_t n_start = GetTimeMillis();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user