diff --git a/src/common/packet-history.cc b/src/common/packet-history.cc index 7d250f361..5fd1d2600 100644 --- a/src/common/packet-history.cc +++ b/src/common/packet-history.cc @@ -772,7 +772,7 @@ PacketHistory::RemoveHeader (uint32_t uid, Chunk const & header, uint32_t size) struct PacketHistory::SmallItem item; const uint8_t *buffer = &m_data->m_data[m_head]; ReadSmall (&item, &buffer); - NS_ASSERT (buffer < &m_data->m_data[m_data->m_size]); + NS_ASSERT (buffer <= &m_data->m_data[m_data->m_size]); if ((item.typeUid & 0xfffffffd) != uid || item.size != size) { @@ -783,7 +783,7 @@ PacketHistory::RemoveHeader (uint32_t uid, Chunk const & header, uint32_t size) // this is a "big" item struct PacketHistory::ExtraItem extraItem; ReadExtra (&extraItem, &buffer); - NS_ASSERT (buffer < &m_data->m_data[m_data->m_size]); + NS_ASSERT (buffer <= &m_data->m_data[m_data->m_size]); if (extraItem.fragmentStart != 0 || extraItem.fragmentEnd != size) { @@ -819,7 +819,7 @@ PacketHistory::RemoveTrailer (uint32_t uid, Chunk const & trailer, uint32_t size struct PacketHistory::SmallItem item; const uint8_t *buffer = &m_data->m_data[m_tail]; ReadSmall (&item, &buffer); - NS_ASSERT (buffer < &m_data->m_data[m_data->m_size]); + NS_ASSERT (buffer <= &m_data->m_data[m_data->m_size]); if ((item.typeUid & 0xfffffffd) != uid || item.size != size) { @@ -830,7 +830,7 @@ PacketHistory::RemoveTrailer (uint32_t uid, Chunk const & trailer, uint32_t size // this is a "big" item struct PacketHistory::ExtraItem extraItem; ReadExtra (&extraItem, &buffer); - NS_ASSERT (buffer < &m_data->m_data[m_data->m_size]); + NS_ASSERT (buffer <= &m_data->m_data[m_data->m_size]); if (extraItem.fragmentStart != 0 || extraItem.fragmentEnd != size) { @@ -953,7 +953,7 @@ PacketHistory::DoPrint (struct PacketHistory::SmallItem *item, uint8_t const*buf fragmentEnd = item->size; packetUid = m_packetUid; } - NS_ASSERT (buffer < &m_data->m_data[m_data->m_size]); + NS_ASSERT (buffer <= &m_data->m_data[m_data->m_size]); if (uid == 0) { // payload. diff --git a/src/common/packet-printer.cc b/src/common/packet-printer.cc index 1d3a94592..97c5a28f2 100644 --- a/src/common/packet-printer.cc +++ b/src/common/packet-printer.cc @@ -82,7 +82,7 @@ PacketPrinter::PrintChunk (uint32_t chunkUid, uint32_t size) const { RegisteredChunks *registeredChunks = PacketPrinter::GetRegisteredChunks (); - NS_ASSERT (chunkUid >= 1); + NS_ASSERT (chunkUid >= 1 && chunkUid/2 <= registeredChunks->size ()); for (PrinterList::const_iterator i = m_printerList.begin (); i != m_printerList.end (); i++) { if (i->m_chunkUid == chunkUid) @@ -92,7 +92,7 @@ PacketPrinter::PrintChunk (uint32_t chunkUid, return; } } - DoGetNameCallback cb = (*registeredChunks)[chunkUid-1].getNameCallback; + DoGetNameCallback cb = (*registeredChunks)[chunkUid/2-1].getNameCallback; std::string name = cb (); struct PacketPrinter::FragmentInformation info; info.start = 0; @@ -108,7 +108,7 @@ PacketPrinter::PrintChunkFragment (uint32_t chunkUid, uint32_t fragmentEnd) const { RegisteredChunks *registeredChunks = PacketPrinter::GetRegisteredChunks (); - NS_ASSERT (chunkUid >= 1); + NS_ASSERT (chunkUid >= 1 && chunkUid/2 <= registeredChunks->size ()); DoGetNameCallback cb = (*registeredChunks)[chunkUid/2-1].getNameCallback; std::string name = cb (); struct PacketPrinter::FragmentInformation info; @@ -190,7 +190,7 @@ bool PacketPrinter::IsTrailer (uint32_t uid) { RegisteredChunks *registeredChunks = PacketPrinter::GetRegisteredChunks (); - NS_ASSERT (uid >= 1 && uid/2 < registeredChunks->size ()); + NS_ASSERT (uid >= 1 && uid/2 <= registeredChunks->size ()); bool isHeader = (*registeredChunks)[uid/2-1].isHeader; return !isHeader; } @@ -198,7 +198,7 @@ bool PacketPrinter::IsHeader (uint32_t uid) { RegisteredChunks *registeredChunks = PacketPrinter::GetRegisteredChunks (); - NS_ASSERT (uid >= 1 && uid/2 < registeredChunks->size ()); + NS_ASSERT (uid >= 1 && uid/2 <= registeredChunks->size ()); bool isHeader = (*registeredChunks)[uid/2-1].isHeader; return isHeader; }