Re: [PATCH 2/3] kill_pid_info_as_uid: don't use security_task_kill()

From: Oleg Nesterov
Date: Mon Feb 25 2008 - 13:40:41 EST


On 02/25, Serge E. Hallyn wrote:
>
> Quoting Oleg Nesterov (oleg@xxxxxxxxxx):
> > kill_pid_info_as_uid() is solely used by drivers/usb/core/. The original
> > "[PATCH] Fix signal sending in usbdevio on async URB completion" commit
> > 46113830a18847cff8da73005e57bc49c2f95a56 was right, but nowadays we use
> > struct pid and this solves most of the addressed problems.
> >
> > It would be nice to use kill_pid_info() instead, but we can't because USB
> > uses .si_code = SI_ASYNCIO which fools SI_FROMUSER() and thus security checks.
> >
> > I think we should omit the permission checks completely, the task which does
> > ioctl(USBDEVFS_SUBMITURB) explicitly asks to send the signal to it, we should
> > not deny the signal even if the task changes its credentials in any way.
> >
> > For now, we can remove security_task_kill(). It is bogus, the signal has come
> > from kernel.
>
> Ok, could you augment the comment above
> kernel/signal.c:kill_pid_info_as_uid() to say that it is only called
> from within the usb subsystem?

OK, will do a bit later. I still hope we can kill this helper or at least
cleanup it further.

What we need in fact is kill_pid_info_skip_check_kill_permission(), and
only because USB uses SI_ASYNCIO < 0.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/