ips_layer: Use rle_size instead of data_size in RLE patch application

Prevents a potential bug when using RLE records in an IPS patch.
This commit is contained in:
Zach Hilman 2018-10-25 14:23:56 -04:00
parent 2bc2b32662
commit 9a87ece837

View File

@ -99,7 +99,7 @@ VirtualFile PatchIPS(const VirtualFile& in, const VirtualFile& ips) {
u16 rle_size{}; u16 rle_size{};
if (ips->ReadObject(&rle_size, offset) != sizeof(u16)) if (ips->ReadObject(&rle_size, offset) != sizeof(u16))
return nullptr; return nullptr;
rle_size = Common::swap16(data_size); rle_size = Common::swap16(rle_size);
offset += sizeof(u16); offset += sizeof(u16);
const auto data = ips->ReadByte(offset++); const auto data = ips->ReadByte(offset++);