• O
    signals: don't abuse __flush_signals() in selinux_bprm_committed_creds() · 9e7c8f8c
    Oleg Nesterov 提交于
    selinux_bprm_committed_creds()->__flush_signals() is not right, we
    shouldn't clear TIF_SIGPENDING unconditionally. There can be other
    reasons for signal_pending(): freezing(), JOBCTL_PENDING_MASK, and
    potentially more.
    
    Also change this code to check fatal_signal_pending() rather than
    SIGNAL_GROUP_EXIT, it looks a bit better.
    
    Now we can kill __flush_signals() before it finds another buggy user.
    
    Note: this code looks racy, we can flush a signal which was sent after
    the task SID has been updated.
    Signed-off-by: NOleg Nesterov <oleg@redhat.com>
    Signed-off-by: NPaul Moore <pmoore@redhat.com>
    9e7c8f8c
sched.h 88.5 KB