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