From bd0b469d3d212ae1407233bdb743bfcab31b4dc7 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Wed, 5 Aug 2015 23:53:26 -0400 Subject: Fix critical vulnerabilities and bugs with NetworkPacket --- src/network/networkpacket.h | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/network/networkpacket.h') diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index 0408b9cac..72f8cabe2 100644 --- a/src/network/networkpacket.h +++ b/src/network/networkpacket.h @@ -111,21 +111,16 @@ public: // Temp, we remove SharedBuffer when migration finished Buffer oldForgePacket(); private: - void checkReadOffset(u32 from_offset); + void checkReadOffset(u32 from_offset, u32 field_size); - template void checkDataSize() + inline void checkDataSize(u32 field_size) { - if (m_read_offset + sizeof(T) > m_datasize) { - m_datasize = m_read_offset + sizeof(T); + if (m_read_offset + field_size > m_datasize) { + m_datasize = m_read_offset + field_size; m_data.resize(m_datasize); } } - template void incrOffset() - { - m_read_offset += sizeof(T); - } - std::vector m_data; u32 m_datasize; u32 m_read_offset; -- cgit v1.2.3