start_kernel---boot_init_stack_canary<四>
In init/main.c
1 /*
2 * Set up the the initial canary ASAP:
3 */
4 boot_init_stack_canary();
in arch/arm/include/asm/stackprotector.h
1 /*
2 * Initialize the stackprotector canary value.
3 *
4 * NOTE: this must only be called from functions that never return,
5 * and it must always be inlined.
6 */
7 static __always_inline void boot_init_stack_canary(void)
8 {
9 unsigned long canary;
10
11 /* Try to get a semi random initial value. */
12 get_random_bytes(&canary, sizeof(canary));
13 canary ^= LINUX_VERSION_CODE;
14
15 current->stack_canary = canary;
16 __stack_chk_guard = current->stack_canary;
17 }
得到随机数字&kernel version,用于版本检测?