File crash-verify-exception-frame-accessible-for-all-verify-requests.patch of Package crash.24892
Index: b/x86_64.c
===================================================================
--- a/x86_64.c
+++ b/x86_64.c
@@ -4386,15 +4386,20 @@ x86_64_exception_frame(ulong flags, ulon
long r8, r9, r10, r11, r12, r13, r14, r15;
struct machine_specific *ms;
struct syment *sp;
- ulong offset;
+ ulong offset, verify_addr;
char *pt_regs_buf;
long verified;
long err;
char buf[BUFSIZE];
- if (flags == EFRAME_VERIFY) {
- if (!accessible(kvaddr) ||
- !accessible(kvaddr + SIZE(pt_regs) - sizeof(long)))
+ if (flags & EFRAME_VERIFY) {
+ if (kvaddr)
+ verify_addr = kvaddr;
+ else
+ verify_addr = (local - bt->stackbuf) + bt->stackbase;
+
+ if (!accessible(verify_addr) ||
+ !accessible(verify_addr + SIZE(pt_regs) - sizeof(long)))
return FALSE;
}