made bdecode not throw

This commit is contained in:
Arvid Norberg
2008-06-23 22:00:27 +00:00
parent 92f13aea68
commit 4d380c57d7
5 changed files with 24 additions and 25 deletions

View File

@@ -216,13 +216,18 @@ namespace libtorrent { namespace
if (length > 500 * 1024)
{
m_pc.disconnect("peer exchange message larger than 500 kB");
m_pc.disconnect("peer exchange message larger than 500 kB", 2);
return true;
}
if (body.left() < length) return true;
entry pex_msg = bdecode(body.begin, body.end);
if (pex_msg.type() == entry::undefined_t)
{
m_pc.disconnect("invalid bencoding in ut_metadata message", 2);
return true;
}
entry const* p = pex_msg.find_key("added");
entry const* pf = pex_msg.find_key("added.f");