about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-11-20 20:03:48 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-11-20 20:03:48 +0100
commit38880ab5a4f6f562e4e3953ebb9ce9ba5bb2f91a (patch)
tree0a5db1223839d88ed882a7aaff8f3ac56d00420c
parent4e193241776deb8f7cac9cc3c21c87891a8a377f (diff)
downloadbox64-38880ab5a4f6f562e4e3953ebb9ce9ba5bb2f91a.tar.gz
box64-38880ab5a4f6f562e4e3953ebb9ce9ba5bb2f91a.zip
[TRACE] Don't try to decode a bridge if memory is not mapped or un-readable
-rw-r--r--src/tools/bridge.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/tools/bridge.c b/src/tools/bridge.c
index 23b3a728..a5396020 100644
--- a/src/tools/bridge.c
+++ b/src/tools/bridge.c
@@ -225,6 +225,10 @@ uintptr_t AddVSyscall(bridge_t* bridge, int num)
 
 const char* getBridgeName(void* addr)
 {
+    if(!getMmapped((uintptr_t)addr))
+        return NULL;
+    if(!(getProtection((uintptr_t)addr)&PROT_READ))
+        return NULL;
     onebridge_t* one = (onebridge_t*)(((uintptr_t)addr&~(sizeof(onebridge_t)-1)));   // align to start of bridge
     if(one->C3==0xC3 && one->S=='S' && one->C=='C') {
         if(one->w==NULL)