1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

Fix bug #5464. Pointed out by Herb @ Connectathon. In fork_domain_child() we call :

CatchChild();

*before* we fork the domain child. This call establishes a signal handler that
eats SIGCLD signals and doesn't call sys_select_signal() as the main daemon
SIGCLD handler should do. This causes the parent to ignore dead children and
time out, instead of calling winbind_child_died() on receipt of the signal. The
correct fix is to move the CatchChild call into the child code after the fork.

Jeremy.
(This used to be commit 8d701a142b)
This commit is contained in:
Jeremy Allison 2008-05-14 14:10:39 -07:00
parent 96ef630ba3
commit 5e70a25116

View File

@ -982,9 +982,6 @@ static bool fork_domain_child(struct winbindd_child *child)
ZERO_STRUCT(state);
state.pid = sys_getpid();
/* Stop zombies */
CatchChild();
child->pid = sys_fork();
if (child->pid == -1) {
@ -1006,6 +1003,9 @@ static bool fork_domain_child(struct winbindd_child *child)
/* Child */
/* Stop zombies in children */
CatchChild();
state.sock = fdpair[0];
close(fdpair[1]);