aboutsummaryrefslogtreecommitdiff
path: root/src/addrman.cpp
diff options
context:
space:
mode:
authorAmiti Uttarwar <amiti@uttarwar.org>2023-04-25 17:04:11 +0100
committerAmiti Uttarwar <amiti@uttarwar.org>2023-05-26 15:47:55 -0700
commitb9f1e86f129e46bb5770fb421d0ba164b5c7aaf8 (patch)
tree53f0859cf45f9242312e85491b4bcf1fd7dbee3c /src/addrman.cpp
parent768770771f7db60147943152b34a8dd485cdcc76 (diff)
addrman: change asserts to Assumes
`Assume` is safer since the checks are non-fatal- errors in these functions should provide feedback in debug builds, but do not need to deter further node operations in production.
Diffstat (limited to 'src/addrman.cpp')
-rw-r--r--src/addrman.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/addrman.cpp b/src/addrman.cpp
index 30ce2cadc8..19a4f4fa63 100644
--- a/src/addrman.cpp
+++ b/src/addrman.cpp
@@ -764,9 +764,7 @@ std::pair<CAddress, NodeSeconds> AddrManImpl::Select_(bool new_only, std::option
if (node_id != -1) {
if (network.has_value()) {
const auto it{mapInfo.find(node_id)};
- assert(it != mapInfo.end());
- const auto info{it->second};
- if (info.GetNetwork() == *network) break;
+ if (Assume(it != mapInfo.end()) && it->second.GetNetwork() == *network) break;
} else {
break;
}
@@ -796,15 +794,17 @@ int AddrManImpl::GetEntry(bool use_tried, size_t bucket, size_t position) const
{
AssertLockHeld(cs);
- assert(position < ADDRMAN_BUCKET_SIZE);
-
if (use_tried) {
- assert(bucket < ADDRMAN_TRIED_BUCKET_COUNT);
- return vvTried[bucket][position];
+ if (Assume(position < ADDRMAN_BUCKET_SIZE) && Assume(bucket < ADDRMAN_TRIED_BUCKET_COUNT)) {
+ return vvTried[bucket][position];
+ }
} else {
- assert(bucket < ADDRMAN_NEW_BUCKET_COUNT);
- return vvNew[bucket][position];
+ if (Assume(position < ADDRMAN_BUCKET_SIZE) && Assume(bucket < ADDRMAN_NEW_BUCKET_COUNT)) {
+ return vvNew[bucket][position];
+ }
}
+
+ return -1;
}
std::vector<CAddress> AddrManImpl::GetAddr_(size_t max_addresses, size_t max_pct, std::optional<Network> network) const