Re: [patch] ptrace-fix-2.5.33-A1

From: OGAWA Hirofumi (hirofumi@mail.parknet.co.jp)
Date: Fri Sep 06 2002 - 15:44:40 EST


Daniel Jacobowitz <dan@debian.org> writes:

> > * Search them and reparent children.
> > */
> > list_for_each(_p, &father->children) {
> > p = list_entry(_p,struct task_struct,sibling);
> > reparent_thread(p, reaper, child_reaper);
> > }
> >
> > Looks like that tracer deprive a process from real parent.
>
> Oh - when the tracer exits the original parent may be corrupted, you
> mean? I guess you're right. But I've made so many changes to this bit
> of code that I'd like to wait until it settles before we fix this -
> it's not a new problem.

Yes, this isn't new problem. However, since other place may be
affected by this, I think should fix this first.

> > list_for_each(_p, &father->ptrace_children) {
> > p = list_entry(_p,struct task_struct,ptrace_list);
> > reparent_thread(p, reaper, child_reaper);
> > }
> >
> > Thread group makes the child which links both ->children and
> > ->ptrace_children.
>
> I don't understand what you mean.

Sorry, forget this.

> > > {
> > > - ptrace_unlink(p);
> > > - list_del_init(&p->sibling);
> > > - p->ptrace = 0;
> > > + /* If we were tracing the thread, release it; otherwise preserve the
> > > + ptrace links. */
> > > + if (unlikely(traced)) {
> > > + task_t *trace_task = p->parent;
> > > + __ptrace_unlink(p);
> > > + p->ptrace = 1;
> >
> > Unexpected change of ptrace flag.
>
> I should've caught that, I actually use the ptrace flags here. But the
> code that uses them is suffering some other BUG() right now.

I forgot I say another point. This path shouldn't send signal to
parent.

-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 07 2002 - 22:00:30 EST