mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03: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:
parent
5e20e9ec38
commit
33bda6ab87
1 changed files with 5 additions and 3 deletions
|
@ -43,9 +43,11 @@ void BanMan::DumpBanlist()
|
|||
static Mutex dump_mutex;
|
||||
LOCK(dump_mutex);
|
||||
|
||||
SweepBanned(); // clean unused entries (if bantime has expired)
|
||||
|
||||
if (!BannedSetIsDirty()) return;
|
||||
{
|
||||
LOCK(m_cs_banned);
|
||||
SweepBanned();
|
||||
if (!BannedSetIsDirty()) return;
|
||||
}
|
||||
|
||||
int64_t n_start = GetTimeMillis();
|
||||
|
||||
|
|
Loading…
Reference in a new issue