tighten up validation of dont-have messages
This commit is contained in:
parent
972288340f
commit
b6896cf337
|
@ -1643,7 +1643,7 @@ namespace {
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
piece_index_t const piece(aux::numeric_cast<int>(aux::read_uint32(recv_buffer)));
|
piece_index_t const piece(aux::read_int32(recv_buffer));
|
||||||
incoming_dont_have(piece);
|
incoming_dont_have(piece);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2034,6 +2034,16 @@ namespace libtorrent {
|
||||||
std::shared_ptr<torrent> t = m_torrent.lock();
|
std::shared_ptr<torrent> t = m_torrent.lock();
|
||||||
TORRENT_ASSERT(t);
|
TORRENT_ASSERT(t);
|
||||||
|
|
||||||
|
if (index < piece_index_t{}
|
||||||
|
|| index >= t->torrent_file().end_piece())
|
||||||
|
{
|
||||||
|
#ifndef TORRENT_DISABLE_LOGGING
|
||||||
|
peer_log(peer_log_alert::incoming, "DONT_HAVE"
|
||||||
|
, "invalid piece: %d", static_cast<int>(index));
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef TORRENT_DISABLE_EXTENSIONS
|
#ifndef TORRENT_DISABLE_EXTENSIONS
|
||||||
for (auto const& e : m_extensions)
|
for (auto const& e : m_extensions)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue