JIT fastmem: fix out of bounds read

seems to fix #727
This commit is contained in:
RSDuck 2020-08-25 18:13:17 +02:00
parent 4be68aafe0
commit b12e1a1b6e
1 changed files with 2 additions and 2 deletions

View File

@ -524,8 +524,8 @@ bool MapAtAddress(u32 addr)
{ {
u32 sectionOffset = offset; u32 sectionOffset = offset;
bool hasCode = isExecutable && ARMJIT::PageContainsCode(&range[offset / 512]); bool hasCode = isExecutable && ARMJIT::PageContainsCode(&range[offset / 512]);
while ((!isExecutable || ARMJIT::PageContainsCode(&range[offset / 512]) == hasCode) while (offset < mirrorSize
&& offset < mirrorSize && (!isExecutable || ARMJIT::PageContainsCode(&range[offset / 512]) == hasCode)
&& (!skipDTCM || mirrorStart + offset != NDS::ARM9->DTCMBase)) && (!skipDTCM || mirrorStart + offset != NDS::ARM9->DTCMBase))
{ {
assert(states[(mirrorStart + offset) >> 12] == memstate_Unmapped); assert(states[(mirrorStart + offset) >> 12] == memstate_Unmapped);