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-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 7 Feb 2017 15:23:00 -0800
From:   Linus Torvalds <torvalds@...ux-foundation.org>
To:     Omar Sandoval <osandov@...ndov.com>
Cc:     Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        kernel-team <kernel-team@...com>, Ingo Molnar <mingo@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH] stacktrace: fix spaces and annoying extra newlines

Hmm.

Looks ok, except I think we migth want to go even further:

On Tue, Feb 7, 2017 at 2:44 PM, Omar Sandoval <osandov@...ndov.com> wrote:
>
> Since KERN_CONT became meaningful again, lockdep stack traces have
> looked like this:

[ removed really ugly trace ]

> This is what it should look like:
>
> [    6.650322] -> #1 (B){+.+...}:
> [    6.651053]        [<ffffffff810d8873>] lock_acquire+0xc3/0x210
> [    6.652000]        [<ffffffff816f6414>] mutex_lock_nested+0x74/0x6d0
> [    6.652664]        [<ffffffffa01b43c3>] init_btrfs_fs+0x21/0x196 [btrfs]
> [    6.653288]        [<ffffffff81000472>] do_one_initcall+0x52/0x1b0
> [    6.653858]        [<ffffffff811a3ae6>] do_init_module+0x5f/0x209
> [    6.654426]        [<ffffffff81122f3d>] load_module+0x218d/0x2b80
> [    6.654992]        [<ffffffff81123bdb>] SyS_finit_module+0xeb/0x120
> [    6.655591]        [<ffffffff816fd241>] entry_SYSCALL_64_fastpath+0x1f/0xc2

That's still pretty ugly.

Actually, let's just remove those hex numbers too, which buy you nothing at all.

> -               printk("%*c", 1 + spaces, ' ');
> -               print_ip_sym(trace->entries[i]);
> +               ip = (void *)trace->entries[i];
> +               printk("%*c[<%p>] %pS\n", 1 + spaces, ' ', ip, ip);

So how does it look if we make that just be

        printk("%*c%pS\n", 1 + spaces, ' ', (void *)trace->entries[i]);

which also avoids the extra variable because the thing is only used
once anyway. We've removed the hex numbers from other printouts, and
they really are completely useless with modules and kernel randomized
addresses.

Would you mind testing such a thing and re-submitting?

               Linus

Powered by blists - more mailing lists