[lkml]   [2009]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 2/3] ptrace: cleanup check/set of PT_PTRACED during attach
On 05/06, Ingo Molnar wrote:
> * Oleg Nesterov <> wrote:
> > ptrace_attach() and ptrace_traceme() are the last functions which
> > look as if the untraced task can have task->ptrace != 0, this must
> > not be possible. Change the code to just check ->ptrace != 0 and
> > s/|=/=/ to set PT_PTRACED.
> >
> > Also, a couple of trivial whitespace cleanups in ptrace_attach().
> >
> > And move ptrace_traceme() up near ptrace_attach() to keep them
> > close to each other.
> btw., while at it, please also fix the typos in
> include/linux/ptrace.h's PT_* flags section:
> /*
> * Ptrace flags
> *
> * The owner ship rules for task->ptrace which holds the ptrace
> * flags is simple. When a task is running it owns it's task->ptrace
> * flags. When the a task is stopped the ptracer owns task->ptrace.
> */
> s/owner ship/ownership
> s/it's/its

Yes, thanks.

We should change this comment anyway, because it is not right.

The only case when a task owns (iow, can change it safely) its ->ptrace
is: it is running _and_ traced. I think this is what the comment tried
to say.

But this doesn't really matter, because afaics the correct comment
should say: the task should never touch its ->ptrace, ptracer always
owns it.

There is only one exception afaics, de_thread() or do_wait() can call
release_task()->ptrace_unlink() and clear ->ptrace on behalve of
another (not ptracer) task.

Roland, what do you think?


 \ /
  Last update: 2009-05-07 01:39    [W:0.061 / U:0.320 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site