diff --git a/libethereum/EthereumHost.cpp b/libethereum/EthereumHost.cpp index 4a13a247f..9980f4339 100644 --- a/libethereum/EthereumHost.cpp +++ b/libethereum/EthereumHost.cpp @@ -178,8 +178,9 @@ tuple>, vector>, vector return true; }); - chosen.reserve((peerCount * _percent + 99) / 100); - for (unsigned i = (peerCount * _percent + 99) / 100; i-- && allowed.size();) + size_t chosenSize = (peerCount * _percent + 99) / 100; + chosen.reserve(chosenSize); + for (unsigned i = chosenSize; i && allowed.size(); i--) { unsigned n = rand() % allowed.size(); chosen.push_back(std::move(allowed[n]));