summaryrefslogtreecommitdiff
path: root/arch/csky/kernel/process.c
diff options
context:
space:
mode:
authorMao Han <han_mao@c-sky.com>2019-10-11 05:56:55 +0300
committerGuo Ren <guoren@linux.alibaba.com>2020-02-21 10:43:24 +0300
commit2f78c73f78c39dabc5c44ad8dd61fd6ec65636d6 (patch)
treeb9ba43f4bb9d709d612c77b3ed4c260a204a2d38 /arch/csky/kernel/process.c
parentfd1d98650ac0042d475155116e65fd17eb379542 (diff)
downloadlinux-2f78c73f78c39dabc5c44ad8dd61fd6ec65636d6.tar.xz
csky: Initial stack protector support
This is a basic -fstack-protector support without per-task canary switching. The protector will report something like when stack corruption is detected: It's tested with strcpy local array overflow in sys_kill and get: stack-protector: Kernel stack is corrupted in: sys_kill+0x23c/0x23c TODO: - Support task switch for different cannary Signed-off-by: Mao Han <han_mao@c-sky.com> Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Diffstat (limited to 'arch/csky/kernel/process.c')
-rw-r--r--arch/csky/kernel/process.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/csky/kernel/process.c b/arch/csky/kernel/process.c
index f320d9248a22..5349cd8c0f30 100644
--- a/arch/csky/kernel/process.c
+++ b/arch/csky/kernel/process.c
@@ -16,6 +16,12 @@
struct cpuinfo_csky cpu_data[NR_CPUS];
+#ifdef CONFIG_STACKPROTECTOR
+#include <linux/stackprotector.h>
+unsigned long __stack_chk_guard __read_mostly;
+EXPORT_SYMBOL(__stack_chk_guard);
+#endif
+
asmlinkage void ret_from_fork(void);
asmlinkage void ret_from_kernel_thread(void);