From 05065d99c78a53f6ab97086574a01d75be79decc Mon Sep 17 00:00:00 2001 From: Pav Lucistnik Date: Mon, 18 Jul 2005 16:04:16 +0000 Subject: - 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 , parts also by: Radim Kolar , thompsa, Marcus Grando Approved by: maintainer timeout (2 months on oldest PR) --- .../dbmail-devel/files/patch-2.0.4_bug199_server.c | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mail/dbmail-devel/files/patch-2.0.4_bug199_server.c (limited to 'mail/dbmail-devel/files/patch-2.0.4_bug199_server.c') 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, -- cgit v1.2.3