"Eric W. Biederman" wrote:
>
> Oleg Nesterov <[email protected]> writes:
>
> > Eric W. Biederman wrote:
> >>
> >> + detach_pid(current, PIDTYPE_PID);
> >> + current->pid = leader->pid;
> >> + attach_pid(current, PIDTYPE_PID, current->pid);
> >
> > What happens after de_thread() unlocks tasklist_lock and before
> > it is taken again in release_task() ?
> >
> > In that window find_task_by_pid() will return dead leader, not
> > the new leader of thread group. This means we can miss tkill()
> > or ptrace(), for example.
>
> All I have done is enlarged the window where this
> race is possible. So for tkill I am not concerned,
> as it wants a particular thread. Nor am I concerned
> about anything else that wants a particular thread.
Yes, you are right, sorry for noise. We have exactly same situation
before de_thread() locks tasklist after killing the leader.
> The fact that the group_leader does not point
> at the actual thread group leader might be a problem,
> as I have opened a window where that is now the case.
>
> For signals that is not a problem as signals are still shared.
> This applies to most other resources as well.
Actually, now I think this patch fixes a small theoretical bug.
Currently we have a tiny window in switch_exec_pids() when it
detaches ->pid from PIDTYPE_PID namespace. RCU based kill_proc_info()
does not take tasklist, so we can miss a signal.
I have added Paul to the CC: list.
> So until we spot that case I'm ready to put this down
> of one of those cases in de_thread that looks wrong
> but happens to work. Now if there is a way to make
> it work more cleanly that may be worth looking at.
I think you are right.
Andrew, please drop this one:
dont-touch-current-tasks-in-de_thread.patch
Eric's patch includes this cleanup.
Oleg.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]