From 969830ad8372aad57de7266fd8330d8c59eb1621 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 12 Jun 2024 01:58:44 +0200 Subject: [PATCH] New recompiler: Add a sanity check, fixes crash with RapidCAD, fixes #4487 . --- src/cpu/386_dynarec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cpu/386_dynarec.c b/src/cpu/386_dynarec.c index 8e9403899..a7dbd34a4 100644 --- a/src/cpu/386_dynarec.c +++ b/src/cpu/386_dynarec.c @@ -414,7 +414,8 @@ exec386_dynarec_dyn(void) int byte_offset = (phys_addr >> PAGE_BYTE_MASK_SHIFT) & PAGE_BYTE_MASK_OFFSET_MASK; uint64_t byte_mask = 1ULL << (PAGE_BYTE_MASK_MASK & 0x3f); - if ((page->code_present_mask & mask) || (page->byte_code_present_mask[byte_offset] & byte_mask)) + if ((page->code_present_mask & mask) || + ((page->mem != page_ff) && (page->byte_code_present_mask[byte_offset] & byte_mask))) # else if (page->code_present_mask[(phys_addr >> PAGE_MASK_INDEX_SHIFT) & PAGE_MASK_INDEX_MASK] & mask) # endif