• Eric W. Biederman's avatar
    signal: Properly deliver SIGILL from uprobes · 91c3a880
    Eric W. Biederman authored
    [ Upstream commit 55a3235f ]
    
    For userspace to tell the difference between a random signal and an
    exception, the exception must include siginfo information.
    
    Using SEND_SIG_FORCED for SIGILL is thus wrong, and it will result
    in userspace seeing si_code == SI_USER (like a random signal) instead
    of si_code == SI_KERNEL or a more specific si_code as all exceptions
    deliver.
    
    Therefore replace force_sig_info(SIGILL, SEND_SIG_FORCE, current)
    with force_sig(SIG_ILL, current) which gets this right and is
    shorter and easier to type.
    
    Fixes: 014940ba ("uprobes/x86: Send SIGILL if arch_uprobe_post_xol() fails")
    Fixes: 0b5256c7 ("uprobes: Send SIGILL if handle_trampoline() fails")
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    91c3a880
uprobes.c 50.3 KB