Browse Source

check if RouterInfo has been decompressed completely

pull/633/head
orignal 8 years ago
parent
commit
ed874fe3ea
  1. 7
      NetDb.cpp
  2. 3
      RouterInfo.cpp

7
NetDb.cpp

@ -556,8 +556,13 @@ namespace data @@ -556,8 +556,13 @@ namespace data
}
uint8_t uncompressed[2048];
size_t uncompressedSize = m_Inflator.Inflate (buf + offset, size, uncompressed, 2048);
if (uncompressedSize)
if (uncompressedSize && uncompressedSize < 2048)
updated = AddRouterInfo (ident, uncompressed, uncompressedSize);
else
{
LogPrint (eLogError, "NetDb: decompression failed ", uncompressedSize);
return;
}
}
if (replyToken && context.IsFloodfill () && updated)

3
RouterInfo.cpp

@ -125,7 +125,8 @@ namespace data @@ -125,7 +125,8 @@ namespace data
m_IsUnreachable = true;
return;
}
std::stringstream str (std::string ((char *)m_Buffer + identityLen, m_BufferLen - identityLen));
std::stringstream str;
str.write ((const char *)m_Buffer + identityLen, m_BufferLen - identityLen);
ReadFromStream (str);
if (!str)
{

Loading…
Cancel
Save