Messages in this thread | | | Date | Wed, 14 Feb 2024 13:36:56 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH v2 2/2] pidfd: change pidfd_send_signal() to respect PIDFD_THREAD |
| |
On 02/10, Oleg Nesterov wrote: > > On 02/10, Christian Brauner wrote: > > > > + if (type == PIDFD_SIGNAL_PROCESS_GROUP) > > + ret = kill_pgrp_info(sig, &kinfo, pid); > > I guess you meant > > if (type == PIDTYPE_PGID) > > other than that, > > Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Yes, but there is another thing I hadn't thought of...
sys_pidfd_send_signal() does
/* Only allow sending arbitrary signals to yourself. */ ret = -EPERM; if ((task_pid(current) != pid) && (kinfo.si_code >= 0 || kinfo.si_code == SI_TKILL)) goto err;
and I am not sure that task_pid(current) == pid should allow the "arbitrary signals" if PIDFD_SIGNAL_PROCESS_GROUP.
Perhaps
/* Only allow sending arbitrary signals to yourself. */ ret = -EPERM; if ((task_pid(current) != pid || type == PIDTYPE_PGID) && (kinfo.si_code >= 0 || kinfo.si_code == SI_TKILL) goto err;
?
Oleg.
| |