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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 12 Dec 2012 22:09:59 +0100
From:	Borislav Petkov <bp@...en8.de>
To:	Joe Perches <joe@...ches.com>
Cc:	Jiri Kosina <trivial@...nel.org>, Tony Luck <tony.luck@...el.com>,
	Jeff Dike <jdike@...toit.com>,
	Richard Weinberger <richard@....at>,
	Thomas Gleixner <tglx@...utronix.de>,
	Ingo Molnar <mingo@...hat.com>,
	"H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
	linux-edac@...r.kernel.org, linux-kernel@...r.kernel.org,
	user-mode-linux-devel@...ts.sourceforge.net,
	user-mode-linux-user@...ts.sourceforge.net
Subject: Re: [TRIVIAL PATCH 16/26] x86: Convert print_symbol to %pSR

On Wed, Dec 12, 2012 at 10:19:05AM -0800, Joe Perches wrote:
> Use the new vsprintf extension to avoid any possible
> message interleaving.
> 
> Signed-off-by: Joe Perches <joe@...ches.com>
> ---
>  arch/x86/kernel/cpu/mcheck/mce.c |   13 +++++++------
>  arch/x86/kernel/dumpstack.c      |    5 ++---
>  arch/x86/kernel/process_32.c     |    2 +-
>  arch/x86/mm/mmio-mod.c           |    4 ++--
>  arch/x86/um/sysrq_32.c           |    9 +++------
>  5 files changed, 15 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> index 80dbda8..996f98a 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -242,13 +242,14 @@ static void print_mce(struct mce *m)
>  	       m->extcpu, m->mcgstatus, m->bank, m->status);
>  
>  	if (m->ip) {
> -		pr_emerg(HW_ERR "RIP%s %02x:<%016Lx> ",
> -			!(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
> -				m->cs, m->ip);
> -
>  		if (m->cs == __KERNEL_CS)
> -			print_symbol("{%s}", m->ip);
> -		pr_cont("\n");
> +			pr_emerg(HW_ERR "RIP%s %02x:<%016Lx> {%pSR}\n",
> +				 !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
> +				 m->cs, m->ip, (void *)m->ip);
> +		else
> +			pr_emerg(HW_ERR "RIP%s %02x:<%016Lx>\n",
> +				 !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
> +				 m->cs, m->ip);
>  	}

I think I'd go ahead and ACK this unless Tony has some comments. I'm not
happy about the two pr_emerg calls based on the conditional.

Or, Tony, what do you think, could we get away if we printed empty
string for when m->cs != __KERNEL_CS? I'm thinking of not breaking any
userspace which is parsing that output and seeing "... {}" in that case.

This assumes that vsprintf can print (void *)0 when passed as an
argument through %pSR. Joe?

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ