From 35c55a653c1e16c139f50040696aad7c8c67d4ef Mon Sep 17 00:00:00 2001 From: Anthony Pesch Date: Sun, 31 Jan 2016 03:19:12 -0800 Subject: [PATCH] warn on invalid memory read or write from a dynamic region --- src/hw/memory.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/hw/memory.cc b/src/hw/memory.cc index fbb7f420..2b6ba401 100644 --- a/src/hw/memory.cc +++ b/src/hw/memory.cc @@ -547,6 +547,11 @@ inline INT Memory::ReadBytes(uint32_t addr) { } MemoryRegion ®ion = regions_[RegionIndex(page)]; + if (!(region.*HANDLER)) { + LOG_WARNING("Unmapped read at 0x%08x", addr); + return 0; + } + uint32_t region_offset = RegionOffset(page); return (region.*HANDLER)(region.ctx, region_offset + page_offset); } @@ -563,6 +568,11 @@ inline void Memory::WriteBytes(uint32_t addr, INT value) { } MemoryRegion ®ion = regions_[RegionIndex(page)]; + if (!(region.*HANDLER)) { + LOG_WARNING("Unmapped write at 0x%08x", addr); + return; + } + uint32_t region_offset = RegionOffset(page); (region.*HANDLER)(region.ctx, region_offset + page_offset, value); }