diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-28 16:18:06 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-28 16:18:06 +0200 |
| commit | 84626f065ca1502e0524e5f54e45f333bc910f65 (patch) | |
| tree | 85b68c3eb5efb7dfa2ea56cd09c753cb2e85afa5 /src | |
| parent | eaedda8cebbefc9106b4d2c2c7b5d5105cae2a37 (diff) | |
| download | box64-84626f065ca1502e0524e5f54e45f333bc910f65.tar.gz box64-84626f065ca1502e0524e5f54e45f333bc910f65.zip | |
[DYNAREC] Try toavoid segfault when exploring code for a native call building dynablock (for #73)
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_functions.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_arm64_functions.c b/src/dynarec/dynarec_arm64_functions.c index 12947c94..ce8a7f55 100755 --- a/src/dynarec/dynarec_arm64_functions.c +++ b/src/dynarec/dynarec_arm64_functions.c @@ -331,7 +331,7 @@ int isNativeCall(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t* calladdress, int uintptr_t a1 = addr + 6 + (PK32(2)); // need to add a check to see if the address is from the GOT ! addr = *(uintptr_t*)a1; } - if(addr<0x20000) // too low, that is suspicious + if(!addr || !getProtection(addr)) return 0; onebridge_t *b = (onebridge_t*)(addr); if(b->CC==0xCC && b->S=='S' && b->C=='C' && b->w!=(wrapper_t)0 && b->f!=(uintptr_t)PltResolver) { |