linux/arch/arm/boot/compressed
Ard Biesheuvel 189af46571 ARM: smp: add support for per-task stack canaries
On ARM, we currently only change the value of the stack canary when
switching tasks if the kernel was built for UP. On SMP kernels, this
is impossible since the stack canary value is obtained via a global
symbol reference, which means
a) all running tasks on all CPUs must use the same value
b) we can only modify the value when no kernel stack frames are live
   on any CPU, which is effectively never.

So instead, use a GCC plugin to add a RTL pass that replaces each
reference to the address of the __stack_chk_guard symbol with an
expression that produces the address of the 'stack_canary' field
that is added to struct thread_info. This way, each task will use
its own randomized value.

Cc: Russell King <linux@armlinux.org.uk>
Cc: Kees Cook <keescook@chromium.org>
Cc: Emese Revfy <re.emese@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Laura Abbott <labbott@redhat.com>
Cc: kernel-hardening@lists.openwall.com
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
2018-12-12 13:20:07 -08:00
..
.gitignore ARM: 8542/1: decompressor: merge piggy.*.S and simplify Makefile 2016-02-22 16:56:31 +00:00
atags_to_fdt.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
big-endian.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debug.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
decompress.c ARM: decompressor: fix warning introduced in fortify patch 2018-04-05 23:56:40 +01:00
efi-header.S arm/efi: Split zImage code and data into separate PE/COFF sections 2017-08-21 09:43:51 +02:00
head-sa1100.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head-sharpsl.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head-xscale.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head.S ARM: 8786/1: Debug kernel copy by printing 2018-09-19 10:44:50 +01:00
libfdt_env.h libfdt: Ensure INT_MAX is defined in libfdt_env.h 2018-09-19 15:10:06 -07:00
ll_char_wr.S [ARM] Remove LOADREGS macro 2006-06-25 11:23:45 +01:00
Makefile ARM: smp: add support for per-task stack canaries 2018-12-12 13:20:07 -08:00
misc.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-04-09 09:19:30 -07:00
misc.h ARM: decompressor: fix warning introduced in fortify patch 2018-04-05 23:56:40 +01:00
piggy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string.c ARM: boot: add strrchr function 2018-03-01 12:02:48 -06:00
vmlinux.lds.S ARM: verify size of zImage 2017-12-17 22:14:05 +00:00