mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-21 16:49:10 +01:00
check for max number of records in tunnel build and tunnel build reply messages
This commit is contained in:
parent
8a52295882
commit
623c3f4605
1 changed files with 15 additions and 0 deletions
|
@ -424,6 +424,11 @@ namespace i2p
|
||||||
{
|
{
|
||||||
int num = buf[0];
|
int num = buf[0];
|
||||||
LogPrint (eLogDebug, "I2NP: VariableTunnelBuild ", num, " records");
|
LogPrint (eLogDebug, "I2NP: VariableTunnelBuild ", num, " records");
|
||||||
|
if (num > i2p::tunnel::MAX_NUM_RECORDS)
|
||||||
|
{
|
||||||
|
LogPrint (eLogError, "I2NP: Too many records in VaribleTunnelBuild message ", num);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (len < num*TUNNEL_BUILD_RECORD_SIZE + 1)
|
if (len < num*TUNNEL_BUILD_RECORD_SIZE + 1)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "I2NP: VaribleTunnelBuild message of ", num, " records is too short ", len);
|
LogPrint (eLogError, "I2NP: VaribleTunnelBuild message of ", num, " records is too short ", len);
|
||||||
|
@ -477,6 +482,11 @@ namespace i2p
|
||||||
{
|
{
|
||||||
int num = buf[0];
|
int num = buf[0];
|
||||||
LogPrint (eLogDebug, "I2NP: TunnelBuildReplyMsg of ", num, " records replyMsgID=", replyMsgID);
|
LogPrint (eLogDebug, "I2NP: TunnelBuildReplyMsg of ", num, " records replyMsgID=", replyMsgID);
|
||||||
|
if (num > i2p::tunnel::MAX_NUM_RECORDS)
|
||||||
|
{
|
||||||
|
LogPrint (eLogError, "I2NP: Too many records in TunnelBuildReply message ", num);
|
||||||
|
return;
|
||||||
|
}
|
||||||
size_t recordSize = isShort ? SHORT_TUNNEL_BUILD_RECORD_SIZE : TUNNEL_BUILD_RECORD_SIZE;
|
size_t recordSize = isShort ? SHORT_TUNNEL_BUILD_RECORD_SIZE : TUNNEL_BUILD_RECORD_SIZE;
|
||||||
if (len < num*recordSize + 1)
|
if (len < num*recordSize + 1)
|
||||||
{
|
{
|
||||||
|
@ -508,6 +518,11 @@ namespace i2p
|
||||||
{
|
{
|
||||||
int num = buf[0];
|
int num = buf[0];
|
||||||
LogPrint (eLogDebug, "I2NP: ShortTunnelBuild ", num, " records");
|
LogPrint (eLogDebug, "I2NP: ShortTunnelBuild ", num, " records");
|
||||||
|
if (num > i2p::tunnel::MAX_NUM_RECORDS)
|
||||||
|
{
|
||||||
|
LogPrint (eLogError, "I2NP: Too many records in ShortTunnelBuild message ", num);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (len < num*SHORT_TUNNEL_BUILD_RECORD_SIZE + 1)
|
if (len < num*SHORT_TUNNEL_BUILD_RECORD_SIZE + 1)
|
||||||
{
|
{
|
||||||
LogPrint (eLogError, "I2NP: ShortTunnelBuild message of ", num, " records is too short ", len);
|
LogPrint (eLogError, "I2NP: ShortTunnelBuild message of ", num, " records is too short ", len);
|
||||||
|
|
Loading…
Add table
Reference in a new issue