• Jann Horn's avatar
    signal: don't silently convert SI_USER signals to non-current pidfd · 556a888a
    Jann Horn authored
    The current sys_pidfd_send_signal() silently turns signals with explicit
    SI_USER context that are sent to non-current tasks into signals with
    kernel-generated siginfo.
    This is unlike do_rt_sigqueueinfo(), which returns -EPERM in this case.
    If a user actually wants to send a signal with kernel-provided siginfo,
    they can do that with pidfd_send_signal(pidfd, sig, NULL, 0); so allowing
    this case is unnecessary.
    
    Instead of silently replacing the siginfo, just bail out with an error;
    this is consistent with other interfaces and avoids special-casing behavior
    based on security checks.
    
    Fixes: 3eb39f47 ("signal: add pidfd_send_signal() syscall")
    Signed-off-by: default avatarJann Horn <jannh@google.com>
    Signed-off-by: default avatarChristian Brauner <christian@brauner.io>
    556a888a
signal.c 114 KB