On 08/21, Oleg Nesterov wrote:
On 08/21, Srikar Dronamraju wrote:
Please note the comment, this check relies on UTRACE_ATTACH_EXCLUSIVE
above. Once we see -ptrace = 0 after utrace_attach_task(), nobody
can change -ptrace.
However after attaching an engine exclusively, (which would
Hi Oleg,
--- PU/kernel/ptrace.c~09_MV_PTRACE_CK2009-08-19 16:49:25.0
+0200
+++ PU/kernel/ptrace.c2009-08-20 20:04:59.0 +0200
@@ -471,35 +471,47 @@ static int ptrace_attach_task(struct tas
{
struct utrace_engine *engine;
unsigned long events;
Hi Srikar,
On 08/21, Srikar Dronamraju wrote:
--- PU/kernel/ptrace.c~09_MV_PTRACE_CK 2009-08-19 16:49:25.0
+0200
+++ PU/kernel/ptrace.c 2009-08-20 20:04:59.0 +0200
@@ -471,35 +471,47 @@ static int ptrace_attach_task(struct tas
{
struct utrace_engine
Hi Oleg,
Thanks for the clarification.
Please note the comment, this check relies on UTRACE_ATTACH_EXCLUSIVE
above. Once we see -ptrace = 0 after utrace_attach_task(), nobody
can change -ptrace.
However after attaching an engine exclusively, (which would mean the
child is not traced or was
On 08/21, Srikar Dronamraju wrote:
Please note the comment, this check relies on UTRACE_ATTACH_EXCLUSIVE
above. Once we see -ptrace = 0 after utrace_attach_task(), nobody
can change -ptrace.
However after attaching an engine exclusively, (which would mean the
child is not traced or was
.
---
[PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()
Until we kill -ptrace, attach must ensure -ptrace == 0 to avoid the
races with detach. We can move these checks to ptrace_attach_task()
from the callers, and we can do this check lockless.
From now ptrace_abort_attach() is only called