Skip to content

wait/ptrace: assume __WALL if the child is traced

Oleg Nesterov lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2wait/ptrace: assume __WALL if the child is tracedkernel/exit.c+20 -90 replies
2/2wait: allow sys_waitid() to accept __WNOTHREAD/__WCLONE/__WALLkernel/exit.c+2 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/2] wait/ptrace: assume __WALL if the child is traced

Resend. And sorry for the huge delay. The patches are the same, I only updated the changelog a little bit.

The previous discussion was a bit confusing, but iirc/iiuc nobody really argued with this change. In particular strace/gdb maintainers do not think it can break something.

To remind, 1 and 2 do not depend on each other. But if we decide to not fix the kernel, then 2/2 makes much more sense. Most init's use waitid() which doesn't allow __WALL, so the user-space fix will be more complicated without this patch.

And just in case let me repeat that I agree, PTRACE_TRACEME is ugly. And probably it should not succeed after re-parenting (in fact I personally think PTRACE_TRACEME should not even exist). But imho it is too late to try change this ancient interface, at least I strongly dislike the idea to add something like is_global_init() check into ptrace_traceme(). And any "sane" restriction here can break something too, plus this will complicate the rules.

Oleg.