From ab58b150ef5e41aae31f4f2af35427d45a8cc151 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Thu, 18 Jan 2018 16:54:52 +0000 Subject: p2p: fix picking peers off an empty gray list --- src/p2p/net_node.inl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index 269a9ba87..f8b96d7a4 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -1062,7 +1062,10 @@ namespace nodetool max_random_index = std::min(local_peers_count -1, 20); random_index = get_random_index_with_fixed_probability(max_random_index); } else { - random_index = crypto::rand() % m_peerlist.get_gray_peers_count(); + local_peers_count = m_peerlist.get_gray_peers_count(); + if (!local_peers_count) + return false; + random_index = crypto::rand() % local_peers_count; } CHECK_AND_ASSERT_MES(random_index < local_peers_count, false, "random_starter_index < peers_local.size() failed!!"); -- cgit v1.2.3