Don't let SIGINT handling block SIGCHLD indefinitely.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 30 May 2014 04:12:08 +0000 (21:12 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 30 May 2014 04:12:08 +0000 (21:12 -0700)
commit8cf1e6e67926683e38809adced986d255124afd5
tree778900c1d56daa5ffebf44e14c51d0f6a9410a40
parentacc16b66ffe8e3b0f3568c5ae2e3bf0dff2bc2fa
Don't let SIGINT handling block SIGCHLD indefinitely.

* atimer.c (block_atimers):
* callproc.c (block_child_signal): Block SIGINT too;
otherwise, its handler might now unblock signals that it shouldn't.
* keyboard.c (read_char): Clear signal mask, since we may
be in a SIGINT handler, and many signals may be masked.
* keyboard.c (handle_interrupt):
* sysdep.c (handle_arith_signal):
Clear signal mask instead of just unblocking the signal that
was received, since several signals may be blocked at this point.

Fixes: debbugs:17561
src/ChangeLog
src/atimer.c
src/callproc.c
src/keyboard.c
src/sysdep.c