• Eric W. Biederman's avatar
    signal/sparc32: Exit with a fatal signal when try_to_clear_window_buffer fails · c317d306
    Eric W. Biederman authored
    The function try_to_clear_window_buffer is only called from
    rtrap_32.c.  After it is called the signal pending state is retested,
    and signals are handled if TIF_SIGPENDING is set.  This allows
    try_to_clear_window_buffer to call force_fatal_signal and then rely on
    the signal being delivered to kill the process, without any danger of
    returning to userspace, or otherwise using possible corrupt state on
    failure.
    
    The functional difference between force_fatal_sig and do_exit is that
    do_exit will only terminate a single thread, and will never trigger a
    core-dump.  A multi-threaded program for which a single thread
    terminates unexpectedly is hard to reason about.  Calling force_fatal_sig
    does not give userspace a chance to catch the signal, but otherwise
    is an ordinary fatal signal exit, and it will trigger a coredump
    of the offending process if core dumps are enabled.
    
    Cc: David Miller <davem@davemloft.net>
    Cc: sparclinux@vger.kernel.org
    Link: https://lkml.kernel.org/r/20211020174406.17889-15-ebiederm@xmission.comSigned-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    c317d306
windows.c 3.33 KB