diff --git a/src/peer_connection.cpp b/src/peer_connection.cpp index 535a90142..a4d66f79c 100755 --- a/src/peer_connection.cpp +++ b/src/peer_connection.cpp @@ -1597,6 +1597,15 @@ namespace libtorrent && t->have_piece(index)) return; + if (index < 0 || index >= int(m_have_piece.size())) + { +#ifdef TORRENT_VERBOSE_LOGGING + (*m_logger) << time_now_string() << " <== INVALID_ALLOWED_FAST [ " << index << " | s: " + << int(m_have_piece.size()) << " ]\n"; +#endif + return; + } + m_allowed_fast.push_back(index); // if the peer has the piece and we want