You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
kill PT_ATTACHED
Since the patch
"Fix ptrace_attach()/ptrace_traceme()/de_thread() race"
commit f5b40e363a
we set PT_ATTACHED and change child->parent "atomically" wrt task_list lock.
This means we can remove the checks like "PT_ATTACHED && ->parent != ptracer"
which were needed to catch the "ptrace attach is in progress" case. We can
also remove the flag itself since nobody else uses it.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Roland McGrath <roland@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
01b8b07a5d
commit
6b39c7bfbd
+2
-4
@@ -100,8 +100,7 @@ int ptrace_check_attach(struct task_struct *child, int kill)
|
||||
*/
|
||||
read_lock(&tasklist_lock);
|
||||
if ((child->ptrace & PT_PTRACED) && child->parent == current &&
|
||||
(!(child->ptrace & PT_ATTACHED) || child->real_parent != current)
|
||||
&& child->signal != NULL) {
|
||||
child->signal != NULL) {
|
||||
ret = 0;
|
||||
spin_lock_irq(&child->sighand->siglock);
|
||||
if (task_is_stopped(child))
|
||||
@@ -200,8 +199,7 @@ repeat:
|
||||
goto bad;
|
||||
|
||||
/* Go */
|
||||
task->ptrace |= PT_PTRACED | ((task->real_parent != current)
|
||||
? PT_ATTACHED : 0);
|
||||
task->ptrace |= PT_PTRACED;
|
||||
if (capable(CAP_SYS_PTRACE))
|
||||
task->ptrace |= PT_PTRACE_CAP;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user