X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=kernel%2Ffork.c;h=844dfdc8c639c3a06092b15ee8c568719a9d0c5f;hb=8de08b0c44ae7bb1500893c5edbf093d72cbd3b8;hp=08969f5aa38d5906b2f42f975054c62bc7f7bf80;hpb=3272eb1ace32627d0ba1d20373fae246f46770ca;p=platform%2Fkernel%2Flinux-starfive.git diff --git a/kernel/fork.c b/kernel/fork.c index 08969f5..844dfdc 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -535,6 +535,9 @@ void put_task_stack(struct task_struct *tsk) void free_task(struct task_struct *tsk) { +#ifdef CONFIG_SECCOMP + WARN_ON_ONCE(tsk->seccomp.filter); +#endif release_user_cpus_ptr(tsk); scs_release(tsk); @@ -2406,12 +2409,6 @@ static __latent_entropy struct task_struct *copy_process( spin_lock(¤t->sighand->siglock); - /* - * Copy seccomp details explicitly here, in case they were changed - * before holding sighand lock. - */ - copy_seccomp(p); - rv_task_fork(p); rseq_fork(p, clone_flags); @@ -2428,6 +2425,14 @@ static __latent_entropy struct task_struct *copy_process( goto bad_fork_cancel_cgroup; } + /* No more failure paths after this point. */ + + /* + * Copy seccomp details explicitly here, in case they were changed + * before holding sighand lock. + */ + copy_seccomp(p); + init_task_pid_links(p); if (likely(p->pid)) { ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);