mirror of
https://github.com/minetest/minetest.git
synced 2024-12-02 12:33:45 +01:00
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:
parent
d215198fe8
commit
9dc1f2d638
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user