From be17a6cbf03e66ac32af57f6f7daba33f2302956 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 25 May 2023 14:56:13 +0200 Subject: Fixed some potential issues when signal occurs with a (near) bad rsp --- src/libtools/signals.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/libtools') 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)); } -- cgit 1.4.1