On 02/08, Oleg Nesterov wrote: > > On 02/08, Christian Brauner wrote: > > > > On Wed, Feb 07, 2024 at 12:45:49PM +0100, Oleg Nesterov wrote: > > > + type = (f.file->f_flags & PIDFD_THREAD) ? PIDTYPE_PID : PIDTYPE_TGID; > > > + ret = kill_pid_info_type(sig, &kinfo, pid, type); > > > > If the user doesn't provide siginfo then the kernel fills in the info in > > prepare_kill_siginfo() a few lines above. That sets info->si_code to > > SI_USER even for the PIDFD_THREAD case. Whenever the info is filled in > > by the kernel it's not exactly userspace impersonating anything plus we > > know that what we're sending to is a pidfd by the type of the pidfd. So > > it feels like we should fill in SI_TKILL here as well? > > Hmm. Agreed, will do, thanks. Cough... lets forget this patch for the moment. Is prepare_kill_siginfo() correct when we send a signal to the child pid namespace? si_pid = task_tgid_vnr(current) doesn't look right in this case but perhaps I am totally confused. And why do we need it at all? Can't sys_kill() and pidfd_send_signal() just use SEND_SIG_NOINFO? OK, I am sure I missed something. Will read this code tomorrow. Oleg.