Re: [PATCH] Fix atomicity of TIF update in flush_thread() forx86_64

From: David Miller
Date: Thu Mar 08 2007 - 21:18:36 EST


From: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx>
Date: Thu, 8 Mar 2007 21:15:53 -0500

> Fix atomicity of TIF update in flush_thread() for x86_64
>
> Race :
>
> parent process executing :
> sys_ptrace()
> (lock_kernel())
> (ptrace_get_task_struct(pid))
> arch_ptrace()
> ptrace_detach()
> ptrace_disable(child);
> clear_singlestep(child);
> clear_tsk_thread_flag(child, TIF_SINGLESTEP);
> (which clears the TIF_SINGLESTEP flag atomically from a different
> process)
> (put_task_struct(child))
> (unlock_kernel())
>
> And at the same time, in the child process :
> sys_execve()
> do_execve()
> search_binary_handler()
> load_elf_binary()
> flush_old_exec()
> flush_thread()
> doing a non-atomic thread flag update
>
> It applies on 2.6.20.
>
> Signed-off-by: Rebecca Schultz <rschultz@xxxxxxxxxx>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx>

Please fix all platforms, not just your favorite one, kthx.
:-)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/