Fixed division by zero due to thread race condition.

This commit is contained in:
Chad Fraleigh 2023-07-08 17:07:04 -07:00
parent b8f998f76a
commit 638e9b4d7f
No known key found for this signature in database
GPG key ID: 2415C39758458A8F
2 changed files with 6 additions and 2 deletions

View file

@ -1253,7 +1253,9 @@ namespace data
uint16_t inds[3];
RAND_bytes ((uint8_t *)inds, sizeof (inds));
std::unique_lock<std::mutex> l(m_RouterInfosMutex);
inds[0] %= m_RouterInfos.size ();
auto count = m_RouterInfos.size ();
if(count == 0) return nullptr;
inds[0] %= count;
auto it = m_RouterInfos.begin ();
std::advance (it, inds[0]);
// try random router

View file

@ -861,7 +861,9 @@ namespace transport
uint16_t inds[3];
RAND_bytes ((uint8_t *)inds, sizeof (inds));
std::unique_lock<std::mutex> l(m_PeersMutex);
inds[0] %= m_Peers.size ();
auto count = m_Peers.size ();
if(count == 0) return nullptr;
inds[0] %= count;
auto it = m_Peers.begin ();
std::advance (it, inds[0]);
// try random peer