On Tue, Dec 4, 2018 at 11:49 AM Linus Torvalds
<torva...@linux-foundation.org> wrote:
>
> because honestly, the *only* reason we hold on to that lock is for the
> insane and not really interesting case of "somebody tried to use
> ptrace to change the creds in-flight during the exec".

No, sorry, me confused. Not somebody trying to change them, it's just
ptrace_attach() trying to change _our_ state during this sequence, and
relying on it all being atomic.

So taking a ref is unnecessary and pointless. It's not the creds that
change, it's that we really want to delay ptrace_attach().

We could maybe set that "we're busy now" flag, and have
ptrace_attach() do something like

        if (task_is_busy(task)) {
                sched_yield();
                return -ERESTARTSYS;
        }

or something like that.

                  Linus

Reply via email to