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:	Thu, 10 Apr 2008 10:36:42 -0700 (PDT)
From:	Linus Torvalds <torvalds@...ux-foundation.org>
To:	"H. Peter Anvin" <hpa@...or.com>
cc:	Steven Rostedt <rostedt@...dmis.org>,
	Andi Kleen <andi@...stfloor.org>,
	Andy Whitcroft <apw@...dowen.org>,
	LKML <linux-kernel@...r.kernel.org>, Ingo Molnar <mingo@...e.hu>,
	Peter Zijlstra <peterz@...radead.org>,
	akpm@...ux-foundation.org, Rusty Russell <rusty@...tcorp.com.au>,
	Glauber de Oliveira Costa <gcosta@...hat.com>,
	Jan Beulich <jbeulich@...ell.com>,
	Thomas Gleixner <tglx@...utronix.de>, pinskia@....gnu.org
Subject: Re: [PATCH] pop previous section in alternative.c



On Thu, 10 Apr 2008, H. Peter Anvin wrote:

> Steven Rostedt wrote:
> > 
> > Looking at the output below, shows that testing .sections in between
> > #APP and #NO_APP would in fact catch this bug.
> > 
> 
> Of course, The Right Thing[TM] would be for gcc to emit .pushsection ...
> .popsection around #APP ... #NO_APP.

No, that would not help anything. It would still be open to bugs in the 
asm, ie if there was a unpaired "pushsection" there, making gcc emit the 
section directives around it would just cause a _different_ bug.

So I don't think gcc does the wrong thing per se. It was clearly a bug in 
our inline asm, and the blame is solidly on us. 

Obviously, it would have been really nice if something like the assembler 
had caught it with some simple sanity-test (ie I think the .size thing 
would be a good sanity check _regardless_), so in that sense it's our bug 
that might have been avoided with soem sanity testing, but on the other 
hand, I can well understand that gas didn't do it - since it would matter 
only for totally buggy code that was never emitted by the compiler.

Gas historically used to not do any sanity-checking what-so-ever, and was 
very much meant to be just for compiler output (which is why #APP exists 
in the first place - to mark places that aren't pure compiler input). It's 
actually improved immensely in that area and now is useful as a 
traditional human-usable assembler with lots of support like macros etc.

			Linus
--
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