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
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170312093820.12044-1-vegard.nossum@oracle.com>
Date:   Sun, 12 Mar 2017 10:38:20 +0100
From:   Vegard Nossum <vegard.nossum@...cle.com>
To:     Richard Weinberger <richard@....at>
Cc:     user-mode-linux-devel@...ts.sourceforge.net,
        linux-kernel@...r.kernel.org,
        Vegard Nossum <vegard.nossum@...cle.com>
Subject: [PATCH] um: use KERN_CONT in stack dump

Without KERN_CONT, the symbol will appear on a new line, making stack
traces completely unreadable:

    Call Trace:
     [<6008e891>] ?
    printk+0x0/0x94
     [<6001cce6>]
    show_stack+0xfe/0x15b
     [<600666ec>] ?
    dump_stack_print_info+0xe1/0xea
     [<6008e891>] ?
    printk+0x0/0x94
     [<6023e826>] ?
    bust_spinlocks+0x0/0x4f
     [<602343b8>]
    dump_stack+0x2a/0x2c
     [<6008e662>]
    panic+0x170/0x31e
     [<6008e4f2>] ?
    panic+0x0/0x31e

This makes it readable again:

    Call Trace:
     [<6008e891>] ? printk+0x0/0x94
     [<6001cce6>] show_stack+0xfe/0x15b
     [<600666ec>] ? dump_stack_print_info+0xe1/0xea
     [<6008e891>] ? printk+0x0/0x94
     [<6023e826>] ? bust_spinlocks+0x0/0x4f
     [<602343b8>] dump_stack+0x2a/0x2c
     [<6008e662>] panic+0x170/0x31e

Signed-off-by: Vegard Nossum <vegard.nossum@...cle.com>
---
 arch/um/kernel/sysrq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c
index a76295f7ede9..edf1f80123e7 100644
--- a/arch/um/kernel/sysrq.c
+++ b/arch/um/kernel/sysrq.c
@@ -22,7 +22,7 @@ static void _print_addr(void *data, unsigned long address, int reliable)
 {
 	pr_info(" [<%08lx>]", address);
 	pr_cont(" %s", reliable ? "" : "? ");
-	print_symbol("%s", address);
+	print_symbol(KERN_CONT "%s", address);
 	pr_cont("\n");
 }
 
-- 
2.12.0.rc0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ