Re: [PATCH] proc: allow killing processes via file descriptors

From: Andy Lutomirski
Date: Sun Nov 18 2018 - 11:18:18 EST


On Sun, Nov 18, 2018 at 7:53 AM Daniel Colascione <dancol@xxxxxxxxxx> wrote:
>
> On Sun, Nov 18, 2018 at 7:38 AM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> > I fully agree that a more comprehensive, less expensive API for
> > managing processes would be nice. But I also think that this patch
> > (using the directory fd and ioctl) is better from a security
> > perspective than using a new file in /proc.
>
> That's an assertion, not an argument. And I'm not opposed to an
> operation on the directory FD, now that it's clear Linus has banned
> "write(2)-as-a-command" APIs. I just insist that we implement the API
> with a system call instead of a less-reliable ioctl due to the
> inherent namespace collision issues in ioctl command names.

Linus banned it because of bugs iike the ones in the patch.

>
> > I have an old patch to make proc directory fds pollable:
> >
> > https://lore.kernel.org/patchwork/patch/345098/
> >
> > That patch plus the one in this thread might make a nice addition to
> > the kernel even if we expect something much better to come along
> > later.
>
> I've always commented on that patch. You never addressed my technical
> objections. Why are you bringing up this patch again as if that
> discussion had never happened? To review, that patch has various race
> conditions

I don't think I ever saw that review.

> and even if it were technically correct, it'd be an abuse
> of directory objects (in what other circumstance do we poll
> directories?) and not logically generalizable to a model in which we
> expose process exit status via the exit-monitoring API.

I agree it's weird. It might be better to have /proc/PID/exit_status
and make *that* pollable.