BUG/MINOR: external-checks: do not unblock undesired signals
authorWilly Tarreau <w@1wt.eu>
Tue, 21 Jun 2016 15:29:46 +0000 (17:29 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 21 Jun 2016 16:10:50 +0000 (18:10 +0200)
commitebc92440594459457005e13c5356ff26e117d8aa
treeafd7a737c9263cf15671b38a2b1354b927468ecf
parent48d6bf2e820f34f26668a2425babe0da422c6dc3
BUG/MINOR: external-checks: do not unblock undesired signals

The external checks code makes use of block_sigchld() and unblock_sigchld()
to ensure nobody modifies the signals list while they're being manipulated.
It happens that these functions clear the list of blocked signals, so they
can possibly have a side effect if other signals are blocked. For now no
other signal is blocked but it may very well change in the future so rather
correctly use SIG_BLOCK/SIG_UNBLOCK instead of touching unrelated signals.

This fix should be backported to 1.6 for correctness.
src/checks.c