Commit 98391cf4 authored by KOSAKI Motohiro's avatar KOSAKI Motohiro Committed by Linus Torvalds

exec: don't turn PF_KTHREAD off when a target command was not found

Presently do_execve() turns PF_KTHREAD off before search_binary_handler().
 THis has a theorical risk of PF_KTHREAD getting lost.  We don't have to
turn PF_KTHREAD off in the ENOEXEC case.

This patch moves this flag modification to after the finding of the
executable file.

This is only a theorical issue because kthreads do not call do_execve()
directly.  But fixing would be better.
Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: default avatarRoland McGrath <roland@redhat.com>
Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 478735e3
...@@ -1009,7 +1009,7 @@ int flush_old_exec(struct linux_binprm * bprm) ...@@ -1009,7 +1009,7 @@ int flush_old_exec(struct linux_binprm * bprm)
bprm->mm = NULL; /* We're using it now */ bprm->mm = NULL; /* We're using it now */
current->flags &= ~PF_RANDOMIZE; current->flags &= ~(PF_RANDOMIZE | PF_KTHREAD);
flush_thread(); flush_thread();
current->personality &= ~bprm->per_clear; current->personality &= ~bprm->per_clear;
...@@ -1412,7 +1412,6 @@ int do_execve(const char * filename, ...@@ -1412,7 +1412,6 @@ int do_execve(const char * filename,
if (retval < 0) if (retval < 0)
goto out; goto out;
current->flags &= ~PF_KTHREAD;
retval = search_binary_handler(bprm,regs); retval = search_binary_handler(bprm,regs);
if (retval < 0) if (retval < 0)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment