Re: [PATCH][RFC] fix PTRACE_KILL
From: Linus Torvalds
Date: Fri Aug 27 2021 - 14:55:20 EST
[ Sorry, this got missed by other stuff in my inbox ]
On Tue, Aug 24, 2021 at 10:12 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> The change I'd proposed makes PTRACE_KILL deliver SIGKILL regardless of
> the target state; yours is arguably what we should've done from the very
> beginning (what we used to have prior to 0.99pl14 and what all other
> Unices had been doing all along), but it's a visible change wrt error
> returns and I don't see any sane way to paper over that part.
>
> Linus, what would you prefer? I've no strong preferences here...
Honestly, I have no huge preferences either, simply because this has
clearly been broken so long that people who care have worked around
the breakage already, or it just didn't matter enough.
Your patch looks fine to me, although looking at it I get the feeling
that we might as well do it inside "ptrace_check_attach()", and that
we should have just passed that function the request (instead of that
odd "ignore_state" argument).
ptrace_check_attach() already gets that tasklist_lock that the code
requires, and could easily do the PTRACE_KILL checking. So I think
that might be an additional cleanup.
But your patch is targeted and doesn't look wrong to me either.
I don't think Eric's patch works, because if I read that one right, it
would actually do that "wait_task_inactive()" which is very much
against the whole point of PTRACE_KILL. We want to kill the target
asap, and regardless of where it is stuck.
Linus