NetworkPacket::putRawPacket: resize m_data to datasize + memcpy

In some cases NetworkPacket was created using default constructor and m_data is not properly sized.
This fixed out of bounds memory copy
Also use memcpy instead of std::vector affectation to enhance packet creation
This commit is contained in:
Loic Blot 2017-10-10 00:47:37 +02:00 committed by SmallJoker
parent d215198fe8
commit 9dc1f2d638
1 changed files with 3 additions and 1 deletions

View File

@ -58,9 +58,11 @@ void NetworkPacket::putRawPacket(u8 *data, u32 datasize, u16 peer_id)
m_datasize = datasize - 2; m_datasize = datasize - 2;
m_peer_id = peer_id; m_peer_id = peer_id;
m_data.resize(m_datasize);
// split command and datas // split command and datas
m_command = readU16(&data[0]); m_command = readU16(&data[0]);
m_data = std::vector<u8>(&data[2], &data[2 + m_datasize]); memcpy(&m_data[0], &data[2], m_datasize);
} }
const char* NetworkPacket::getString(u32 from_offset) const char* NetworkPacket::getString(u32 from_offset)