HW/CEXIIPL: Respect bounds in LoadFileToIPL().

This commit is contained in:
Admiral H. Curtiss
2023-12-09 15:42:15 +01:00
parent f284bfca45
commit 7d53916466

View File

@ -159,13 +159,18 @@ void CEXIIPL::DoState(PointerWrap& p)
bool CEXIIPL::LoadFileToIPL(const std::string& filename, u32 offset) bool CEXIIPL::LoadFileToIPL(const std::string& filename, u32 offset)
{ {
if (offset >= ROM_SIZE)
return false;
File::IOFile stream(filename, "rb"); File::IOFile stream(filename, "rb");
if (!stream) if (!stream)
return false; return false;
u64 filesize = stream.GetSize(); const u64 filesize = stream.GetSize();
if (offset >= filesize)
return false;
if (!stream.ReadBytes(&m_rom[offset], filesize)) if (!stream.ReadBytes(&m_rom[offset], std::min<u64>(filesize, ROM_SIZE) - offset))
return false; return false;
m_fonts_loaded = true; m_fonts_loaded = true;