exec: Move cleanup of posix timers on exec out of de_thread
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 25 Mar 2020 15:00:38 +0000 (10:00 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 25 Mar 2020 15:00:38 +0000 (10:00 -0500)
These functions have very little to do with de_thread move them out
of de_thread an into flush_old_exec proper so it can be more clearly
seen what flush_old_exec is doing.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Reviewed-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
fs/exec.c

index ff74b9a..215d86f 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1189,11 +1189,6 @@ no_thread_group:
        /* we have changed execution domain */
        tsk->exit_signal = SIGCHLD;
 
-#ifdef CONFIG_POSIX_TIMERS
-       exit_itimers(sig);
-       flush_itimer_signals();
-#endif
-
        BUG_ON(!thread_group_leader(tsk));
        return 0;
 
@@ -1277,6 +1272,11 @@ int flush_old_exec(struct linux_binprm * bprm)
        if (retval)
                goto out;
 
+#ifdef CONFIG_POSIX_TIMERS
+       exit_itimers(me->signal);
+       flush_itimer_signals();
+#endif
+
        /*
         * Make the signal table private.
         */