Browse Source

fixed memory leak

pull/163/head
orignal 10 years ago
parent
commit
93c2c13f96
  1. 8
      NetDb.cpp

8
NetDb.cpp

@ -515,6 +515,7 @@ namespace data
auto floodfill = GetClosestFloodfill (buf + DATABASE_STORE_KEY_OFFSET, excluded); auto floodfill = GetClosestFloodfill (buf + DATABASE_STORE_KEY_OFFSET, excluded);
if (floodfill) if (floodfill)
{ {
excluded.insert (floodfill->GetIdentHash ());
auto floodMsg = NewI2NPShortMessage (); auto floodMsg = NewI2NPShortMessage ();
uint8_t * payload = floodMsg->GetPayload (); uint8_t * payload = floodMsg->GetPayload ();
memcpy (payload, buf, 33); // key + type memcpy (payload, buf, 33); // key + type
@ -544,6 +545,8 @@ namespace data
i2p::DeleteI2NPMessage (m); i2p::DeleteI2NPMessage (m);
return; return;
} }
try
{
CryptoPP::Gunzip decompressor; CryptoPP::Gunzip decompressor;
decompressor.Put (buf + offset, size); decompressor.Put (buf + offset, size);
decompressor.MessageEnd(); decompressor.MessageEnd();
@ -552,6 +555,11 @@ namespace data
decompressor.Get (uncompressed, uncomressedSize); decompressor.Get (uncompressed, uncomressedSize);
AddRouterInfo (buf + DATABASE_STORE_KEY_OFFSET, uncompressed, uncomressedSize); AddRouterInfo (buf + DATABASE_STORE_KEY_OFFSET, uncompressed, uncomressedSize);
} }
catch (CryptoPP::Exception& ex)
{
LogPrint (eLogError, "DatabaseStore: ", ex.what ());
}
}
i2p::DeleteI2NPMessage (m); i2p::DeleteI2NPMessage (m);
} }

Loading…
Cancel
Save