diff options
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 4854c2c4a82e..6715ebc3761d 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -61,6 +61,7 @@  #include <linux/proc_fs.h>  #include <linux/blkdev.h>  #include <trace/sched.h> +#include <linux/magic.h>  #include <asm/pgtable.h>  #include <asm/pgalloc.h> @@ -212,6 +213,8 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)  {  	struct task_struct *tsk;  	struct thread_info *ti; +	unsigned long *stackend; +  	int err;  	prepare_to_copy(orig); @@ -237,6 +240,8 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)  		goto out;  	setup_thread_stack(tsk, orig); +	stackend = end_of_stack(tsk); +	*stackend = STACK_END_MAGIC;	/* for overflow detection */  #ifdef CONFIG_CC_STACKPROTECTOR  	tsk->stack_canary = get_random_int();  | 
