mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Use correct mask for Fake VMem
Shouldn't have any behaviour change for regular usage as both masks are 32MB by default. But fixes theoretical buffer overrun when memory size override is used.
This commit is contained in:
@ -239,7 +239,7 @@ static T ReadFromHardware(u32 em_address)
|
||||
if (Memory::m_pFakeVMEM && ((em_address & 0xFE000000) == 0x7E000000))
|
||||
{
|
||||
T value;
|
||||
std::memcpy(&value, &Memory::m_pFakeVMEM[em_address & Memory::GetRamMask()], sizeof(T));
|
||||
std::memcpy(&value, &Memory::m_pFakeVMEM[em_address & Memory::GetFakeVMemMask()], sizeof(T));
|
||||
return bswap(value);
|
||||
}
|
||||
|
||||
@ -330,7 +330,8 @@ static void WriteToHardware(u32 em_address, const T data)
|
||||
if (Memory::m_pFakeVMEM && ((em_address & 0xFE000000) == 0x7E000000))
|
||||
{
|
||||
const T swapped_data = bswap(data);
|
||||
std::memcpy(&Memory::m_pFakeVMEM[em_address & Memory::GetRamMask()], &swapped_data, sizeof(T));
|
||||
std::memcpy(&Memory::m_pFakeVMEM[em_address & Memory::GetFakeVMemMask()], &swapped_data,
|
||||
sizeof(T));
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user