Subject: | sigchild handler steals child-reaping ability from milters |
Sometimes milters need to call subprocesses and reap them explicitly to obtain their exit statuses. You break that by setting a SIGCHLD handler in the parent process and then not unsetting it in the children. Fixed in the attached patch.
Subject: | pmilter.patch |
--- PMilter.pm 2013/06/03 13:58:04 1.1
+++ PMilter.pm 2013/06/03 13:58:56
@@ -925,6 +925,7 @@
undef $lsocket;
undef $@;
$SIG{PIPE} = 'IGNORE'; # so close_callback will be reached
+ $SIG{CHLD} = 'DEFAULT';
$SIG{$siginfo} = 'DEFAULT';
&$handler($socket);