Merge pull request #14692 from JosJuice/netplay-memory-safety

NetPlay: Fix memory safety issues
This commit is contained in:
JosJuice
2026-06-21 21:44:22 +02:00
committed by GitHub
3 changed files with 14 additions and 2 deletions
+1 -1
View File
@@ -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
+12
View File
@@ -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];
+1 -1
View File
@@ -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