mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-07-11 01:24:22 +02:00
Merge pull request #14692 from JosJuice/netplay-memory-safety
NetPlay: Fix memory safety issues
This commit is contained in:
@@ -1211,7 +1211,7 @@ void NetPlayClient::OnSyncSaveDataWii(sf::Packet& packet)
|
||||
for (u8& byte : header.md5)
|
||||
packet >> byte;
|
||||
packet >> header.unk2;
|
||||
for (size_t i = 0; i < header.banner_size; i++)
|
||||
for (size_t i = 0; i < std::min<size_t>(header.banner_size, sizeof(header.banner)); i++)
|
||||
packet >> header.banner[i];
|
||||
|
||||
// BkHeader
|
||||
|
||||
@@ -197,6 +197,12 @@ bool DecompressPacketIntoFile(sf::Packet& packet, const std::string& file_path)
|
||||
if (!cur_len)
|
||||
break; // We reached the end of the data stream
|
||||
|
||||
if (cur_len > in_buffer.size())
|
||||
{
|
||||
PanicAlertFmt("LZO error - input is too large");
|
||||
return false;
|
||||
}
|
||||
|
||||
for (size_t j = 0; j < cur_len; j++)
|
||||
{
|
||||
packet >> in_buffer[j];
|
||||
@@ -281,6 +287,12 @@ std::optional<std::vector<u8>> DecompressPacketIntoBuffer(sf::Packet& packet)
|
||||
if (!cur_len)
|
||||
break; // We reached the end of the data stream
|
||||
|
||||
if (cur_len > in_buffer.size())
|
||||
{
|
||||
PanicAlertFmt("LZO error - input is too large");
|
||||
return {};
|
||||
}
|
||||
|
||||
for (size_t j = 0; j < cur_len; j++)
|
||||
{
|
||||
packet >> in_buffer[j];
|
||||
|
||||
@@ -1976,7 +1976,7 @@ bool NetPlayServer::SyncSaveData(const SaveSyncInfo& sync_info)
|
||||
for (u8 byte : header->md5)
|
||||
pac << byte;
|
||||
pac << header->unk2;
|
||||
for (size_t i = 0; i < header->banner_size; i++)
|
||||
for (size_t i = 0; i < std::min<size_t>(header->banner_size, sizeof(header->banner)); i++)
|
||||
pac << header->banner[i];
|
||||
|
||||
// BkHeader
|
||||
|
||||
Reference in New Issue
Block a user