lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <be65c2feeaed23b29fbe92c24088a1aa793fe999.1464129798.git.luto@kernel.org> Date: Tue, 24 May 2016 15:48:41 -0700 From: Andy Lutomirski <luto@...nel.org> To: x86@...nel.org Cc: linux-kernel@...r.kernel.org, Borislav Petkov <bp@...en8.de>, Kees Cook <keescook@...omium.org>, Brian Gerst <brgerst@...il.com>, Andy Lutomirski <luto@...nel.org> Subject: [PATCH 4/7] x86/dumpstack: If addr_limit is non-default, display it This will help debug OOPSes related to USER_DS vs KERNEL_DS. Signed-off-by: Andy Lutomirski <luto@...nel.org> --- arch/x86/kernel/dumpstack_32.c | 4 ++++ arch/x86/kernel/dumpstack_64.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c index 464ffd69b92e..5dbb08fd8291 100644 --- a/arch/x86/kernel/dumpstack_32.c +++ b/arch/x86/kernel/dumpstack_32.c @@ -124,8 +124,12 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, void show_regs(struct pt_regs *regs) { int i; + struct thread_info *ti = current_thread_info(); show_regs_print_info(KERN_EMERG); + if (ti->addr_limit.seg != TASK_SIZE_MAX) + printk(KERN_DEFAULT "task.addr_limit: 0x%lx\n", + ti->addr_limit.seg); __show_regs(regs, !user_mode(regs)); /* diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c index 5f1c6266eb30..2fdeb64dfed0 100644 --- a/arch/x86/kernel/dumpstack_64.c +++ b/arch/x86/kernel/dumpstack_64.c @@ -301,9 +301,14 @@ void show_regs(struct pt_regs *regs) { int i; unsigned long sp; + struct thread_info *ti = current_thread_info(); sp = regs->sp; + show_regs_print_info(KERN_DEFAULT); + if (ti->addr_limit.seg != TASK_SIZE_MAX) + printk(KERN_DEFAULT "task.addr_limit: 0x%lx\n", + ti->addr_limit.seg); __show_regs(regs, 1); /* -- 2.5.5
Powered by blists - more mailing lists