Quote
// Make sure the node is not sending more results than we requested, which is not only a protocol vialoation
// but most likely a malicous answer
if (plistResults->size() > GetRequestContactCount() && !(pRequestedMoreNodesContact == pFromContact && plistResults->size() <= KADEMLIA_FIND_VALUE_MORE) )
{
DebugLogWarning(_T("Node %s sent more contacts than requested on a routing query, ignoring response"), ipstr(ntohl(uFromIP)));
delete plistResults; //>>> WiZaRd::Memleak FiX
return;
}
// but most likely a malicous answer
if (plistResults->size() > GetRequestContactCount() && !(pRequestedMoreNodesContact == pFromContact && plistResults->size() <= KADEMLIA_FIND_VALUE_MORE) )
{
DebugLogWarning(_T("Node %s sent more contacts than requested on a routing query, ignoring response"), ipstr(ntohl(uFromIP)));
delete plistResults; //>>> WiZaRd::Memleak FiX
return;
}
because plistResults doesn't get deleted - fix included above.
This post has been edited by tHeWiZaRdOfDoS: 18 July 2012 - 03:57 PM