Thread (15 messages) 15 messages, 7 authors, 2021-12-20

Re: randomize_kstack: To init or not to init?

flat view

From: Segher Boessenkool <hidden>
Date: 2021-12-09 20:23:58
Also in: lkml, llvm

On Thu, Dec 09, 2021 at 10:58:01AM +0100, Marco Elver wrote:
Clang supports CONFIG_INIT_STACK_ALL_ZERO, which appears to be the
default since dcb7c0b9461c2, which is why this came on my radar. And
Clang also performs auto-init of allocas when auto-init is on
(https://reviews.llvm.org/D60548), with no way to skip. As far as I'm
aware, GCC 12's upcoming -ftrivial-auto-var-init= doesn't yet auto-init
allocas.
The space allocated by alloca is not an automatic variable, so of course
it is not affected by this compiler flag.  And it should not, this flag
is explicitly for *small fixed-size* stack variables (initialising
others can be much too expensive).
	C. Introduce a new __builtin_alloca_uninitialized().
That is completely backwards.  That is the normal behaviour of alloca
already.  Also you can get __builtin_alloca inserted by the compiler
(for a variable length array for example), and you typically do not want
those initialised either, for the same reasons.


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help