linux/include
Oleg Nesterov 087eb43705 ptrace: tracehook_report_clone: fix false positives
The "trace || CLONE_PTRACE" check in tracehook_report_clone() is not right,

- If the untraced task does clone(CLONE_PTRACE) the new child is not traced,
  we must not queue SIGSTOP.

- If we forked the traced task, but the tracer exits and untraces both the
  forking task and the new child (after copy_process() drops tasklist_lock),
  we should not queue SIGSTOP too.

Change the code to check task_ptrace() != 0 instead. This is still racy, but
the race is harmless.

We can race with another tracer attaching to this child, or the tracer can
exit and detach in parallel. But giwen that we didn't do wake_up_new_task()
yet, the child must have the pending SIGSTOP anyway.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-04 18:07:40 -07:00
..
acpi Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel 2009-04-28 17:21:20 -07:00
asm-generic asm-generic: fix local_add_unless macro 2009-05-18 08:34:08 -07:00
crypto
drm drm: Hook up DPMS property handling in drm_crtc.c. Add drm_helper_connector_dpms. 2009-06-04 09:32:12 +10:00
keys
linux ptrace: tracehook_report_clone: fix false positives 2009-06-04 18:07:40 -07:00
math-emu
media
mtd
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-05 08:26:10 -07:00
pcmcia
rdma
rxrpc
scsi [SCSI] fc-transport: Close state transition-window during rport deletion. 2009-05-15 12:16:46 -04:00
sound ALSA: Release v1.0.20 2009-05-06 12:32:26 +02:00
trace
video
xen
Kbuild