From 4bb5ce8941c9f60d017a82c425b5e3879b40f435 Mon Sep 17 00:00:00 2001 From: zeromus Date: Fri, 2 Nov 2018 16:26:50 -0400 Subject: [PATCH] dont read roms out of range --- libmupen64plus/mupen64plus-core/src/memory/memory.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libmupen64plus/mupen64plus-core/src/memory/memory.c b/libmupen64plus/mupen64plus-core/src/memory/memory.c index 3c537e40b3..b33632b674 100644 --- a/libmupen64plus/mupen64plus-core/src/memory/memory.c +++ b/libmupen64plus/mupen64plus-core/src/memory/memory.c @@ -3741,7 +3741,14 @@ unsigned int *fast_mem_access(unsigned int address) address = virtual_to_physical_address(address, 2); if ((address & 0x1FFFFFFF) >= 0x10000000) - return (unsigned int *)rom + ((address & 0x1FFFFFFF) - 0x10000000)/4; + { + unsigned int ofs = ((address & 0x1FFFFFFF) - 0x10000000)/4; + if(ofs < rom_size/4) + return (unsigned int *)rom + ofs; + else { + return NULL; + } + } else if ((address & 0x1FFFFFFF) < 0x800000) return (unsigned int *)rdram + (address & 0x1FFFFFFF)/4; else if (address >= 0xa4000000 && address <= 0xa4001000)