about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-05-25 14:56:13 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-05-25 14:56:13 +0200
commitbe17a6cbf03e66ac32af57f6f7daba33f2302956 (patch)
tree3ee66d75f05bfea13975770f0762f021809003dd /src
parentd2547672f314d70470a2370ee8ff391a5c0b93d0 (diff)
downloadbox64-be17a6cbf03e66ac32af57f6f7daba33f2302956.tar.gz
box64-be17a6cbf03e66ac32af57f6f7daba33f2302956.zip
Fixed some potential issues when signal occurs with a (near) bad rsp
Diffstat (limited to 'src')
-rwxr-xr-xsrc/libtools/signals.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index 3ddb52f4..8a4b5f91 100755
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -1264,7 +1264,7 @@ exit(-1);
                     printf_log(log_minimum, "%s:0x%016llx ", reg_name[i], p->uc_mcontext.regs[10+i]);
                 }
             }
-            if(rsp!=addr)
+            if(rsp!=addr && getProtection((uintptr_t)rsp-4*8) && getProtection((uintptr_t)rsp+4*8))
                 for (int i=-4; i<4; ++i) {
                     printf_log(log_minimum, "%sRSP%c0x%02x:0x%016lx", (i%4)?" ":"\n", i<0?'-':'+', abs(i)*8, *(uintptr_t*)(rsp+i*8));
                 }
@@ -1276,7 +1276,7 @@ exit(-1);
                     printf_log(log_minimum, "%s:0x%016llx ", reg_name[i], p->uc_mcontext.__gregs[16+i]);
                 }
             }
-            if(rsp!=addr)
+            if(rsp!=addr && getProtection((uintptr_t)rsp-4*8) && getProtection((uintptr_t)rsp+4*8))
                 for (int i=-4; i<4; ++i) {
                     printf_log(log_minimum, "%sRSP%c0x%02x:0x%016lx", (i%4)?" ":"\n", i<0?'-':'+', abs(i)*8, *(uintptr_t*)(rsp+i*8));
                 }