Thread (9 messages) 9 messages, 4 authors, 2018-09-19

Re: [PATCH v2 2/2] powerpc/32: add stack protector support

From: Segher Boessenkool <hidden>
Date: 2018-09-19 15:34:03
Also in: lkml

On Wed, Sep 19, 2018 at 04:22:52PM +0200, Christophe LEROY wrote:
quoted
It looks like it will be easy to enable on 64 bit as well.
Will it ? It seems that PPC64 doesn't have r2 pointing to current task 
struct, but instead it has r13 pointing to the paca struct. Which means 
we should add a canary in the paca struct, and populate it at task 
switch from current->stack_canary. Or am I missing something ?
No, I am just forgetting things :-)
quoted
quoted
+	/* Try to get a semi random initial value. */
+	get_random_bytes(&canary, sizeof(canary));
+	canary ^= mftb();
+	canary ^= LINUX_VERSION_CODE;
These last two lines are useless (or worse, they may give people the idea
that they are not!)
Well, the last line is in all arches except x86
The mftb() was suggested by Michael to add some entropy.
x86 does the same sort of thing with their rdtsc()
quoted
You should use wait_for_random_bytes I think.
On the 8xx, it takes several minutes before crnd_is_ready(), while 
boot_init_stack_canary() is called quite early in start_kernel()
If you do not provide real entropy to the canary, the canary doesn't help
providing protection as much as you may hope.


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