diff --git a/SSUData.cpp b/SSUData.cpp index 2c902ed4..b5c68ad1 100644 --- a/SSUData.cpp +++ b/SSUData.cpp @@ -148,6 +148,11 @@ namespace transport bool isLast = fragmentInfo & 0x010000; // bit 16 uint8_t fragmentNum = fragmentInfo >> 17; // bits 23 - 17 LogPrint (eLogDebug, "SSU data fragment ", (int)fragmentNum, " of message ", msgID, " size=", (int)fragmentSize, isLast ? " last" : " non-last"); + if (fragmentSize >= SSU_V4_MAX_PACKET_SIZE) + { + LogPrint (eLogError, "Fragment size ", fragmentSize, "exceeds max SSU packet size"); + return; + } // find message with msgID I2NPMessage * msg = nullptr;