diff --git a/src/avalanche/peermanager.cpp b/src/avalanche/peermanager.cpp --- a/src/avalanche/peermanager.cpp +++ b/src/avalanche/peermanager.cpp @@ -76,21 +76,24 @@ return i; } - // We undershooted. + // We undershot. if (slots[i].precedes(slot)) { begin = i + 1; + if (begin >= slots.size()) { + break; + } bottom = slots[begin].start; continue; } - // We overshooted. + // We overshot. if (slots[i].follows(slot)) { end = i; top = slots[end].start; continue; } - // We have an unalocated slot. + // We have an unallocated slot. return NO_PEER; }