diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2005-07-18 16:04:16 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2005-07-18 16:04:16 +0000 |
commit | 05065d99c78a53f6ab97086574a01d75be79decc (patch) | |
tree | 2f9f09b2b30cc41ccd58808030a38660205a46fb /mail/dbmail-devel/files/patch-2.0.4_bug199_server.c | |
parent | - Update to 1.3.2 (diff) |
- Patch nine bugs:
#79 - INTERNALDATE reponses do not conform to RFC
#145 - LMTP loses return-path
#177 - Compile Fails on FreeBSD
(fixes compilation on FreeBSD 4.X)
#184 - socklen_t issue
#190 - huge load if database crash
#198 - DBMail processes killing each other
#199 - spare child creates zombie
#214 - dbmail-smtp dumps core with double free
#216 - malformed header prevents delivery
- Fix RC_SUBR usage
PR: ports/83437, also ports/80736, ports/82437, ports/83575
Submitted by: Mark Starovoytov <mark@kikg.ifmo.ru>,
parts also by: Radim Kolar <hsn@netmag.cz>, thompsa,
Marcus Grando <marcus@corp.grupos.com.br>
Approved by: maintainer timeout (2 months on oldest PR)
Diffstat (limited to 'mail/dbmail-devel/files/patch-2.0.4_bug199_server.c')
-rw-r--r-- | mail/dbmail-devel/files/patch-2.0.4_bug199_server.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/mail/dbmail-devel/files/patch-2.0.4_bug199_server.c b/mail/dbmail-devel/files/patch-2.0.4_bug199_server.c new file mode 100644 index 000000000000..6786e6c8fc60 --- /dev/null +++ b/mail/dbmail-devel/files/patch-2.0.4_bug199_server.c @@ -0,0 +1,35 @@ +Index: server.c +=================================================================== +--- server.c (revision 1763) ++++ server.c (revision 1787) +@@ -69,7 +69,7 @@ + + act.sa_sigaction = ParentSigHandler; + sigemptyset(&act.sa_mask); +- act.sa_flags = SA_SIGINFO; ++ act.sa_flags = SA_SIGINFO | SA_NOCLDSTOP; + + sigaction(SIGCHLD, &act, 0); + sigaction(SIGINT, &act, 0); +@@ -152,6 +152,7 @@ + + void ParentSigHandler(int sig, siginfo_t * info, void *data) + { ++ pid_t chpid; + int saved_errno = errno; + + if (ParentPID != getpid()) { +@@ -175,7 +176,12 @@ + break; + + case SIGCHLD: +- break; /* ignore, wait for child in main loop */ ++ /* ignore, wait for child in main loop */ ++ /* but we need to catch zombie */ ++ if ((chpid = waitpid(-1,&sig,WNOHANG)) > 0) ++ scoreboard_release(chpid); ++ ++ break; + + case SIGHUP: + trace(TRACE_DEBUG, |