lkml.org 
[lkml]   [2008]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC] [Patch 1/1] [Self Ptrace] System call notification with self_ptrace
Hello Oleg,

Oleg Nesterov wrote:
> On 08/25, Pierre Morel wrote:
>
>> @@ -550,6 +550,23 @@ asmlinkage long sys_ptrace(long request,
>> goto out;
>> }
>>
>> + if (request == PTRACE_SELF_ON) {
>> + task_lock(current);
>> + set_thread_flag(TIF_SYSCALL_TRACE);
>> + current->ptrace |= PT_SELF;
>>
>
> I didn't read the whole patch, but this sets PT_SELF without PT_PTRACED
> (and without ptrace_attach).
>
Yes it is the way it is intended to work.
PT_SELF and other ptrace requests are not correlated,
I use the ptrace infrastructure to take advantage
of the existing system call interception framework.
> We have some "->ptrace != 0" checks which can misunderstand this. Just
> for example, suppose that the task does sys_ptrace(PTRACE_SELF_ON) and
> then its parent dies. I guess in that case forget_original_parent()
> will hit BUG_ON(p->ptrace), no?
>
>
Yes you are right, I will take care of those cases.
I have the choice between:

- tracking all references to the ptrace flags and add a test for PT_SELF
or a mask.

- add a dedicated task_struct entry to hold the PT_SELF flag

The second solution seems easier, simpler and more
readable but extends the task struct.

What do you think is the best way to do it?

> Oleg.
>
>
Thanks,

Pierre




--
=============
Pierre Morel
RTOS and Embedded Linux



\
 
 \ /
  Last update: 2008-08-26 16:11    [W:0.109 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site