diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-11-04 11:43:27 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-11-04 11:43:27 +0100 |
| commit | 3448e941710dbf11d2772d5782a0b2d44e7892b1 (patch) | |
| tree | 2c9ee9d17416e124b7baaa53eefafc2f0a0a7942 /src/dynarec/dynablock.c | |
| parent | 08085be36070ba22b9e2e99529826d60d5ba149f (diff) | |
| download | box64-3448e941710dbf11d2772d5782a0b2d44e7892b1.tar.gz box64-3448e941710dbf11d2772d5782a0b2d44e7892b1.zip | |
Improve handling of memory protection, and excution bit
Diffstat (limited to 'src/dynarec/dynablock.c')
| -rw-r--r-- | src/dynarec/dynablock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dynarec/dynablock.c b/src/dynarec/dynablock.c index 4c703167..bfe10758 100644 --- a/src/dynarec/dynablock.c +++ b/src/dynarec/dynablock.c @@ -19,6 +19,7 @@ #include "dynarec_private.h" #include "elfloader.h" #include "bridge.h" +#include "signals.h" #include "dynarec_native.h" #include "native_lock.h" @@ -198,6 +199,8 @@ static dynablock_t* internalDBGetBlock(x64emu_t* emu, uintptr_t addr, uintptr_t { if(hasAlternate((void*)addr)) return NULL; + if((getProtection(addr)&(PROT_EXEC|PROT_READ))!=(PROT_EXEC|PROT_READ)) // cannot be run, get out of the Dynarec + return NULL; dynablock_t* block = getDB(addr); if(block || !create) return block; |