You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2003/09/02 20:17:05 UTC
cvs commit: apache-1.3/src/main alloc.c
jim 2003/09/02 11:17:05
Modified: src CHANGES
src/main alloc.c
Log:
Fix 21737 via a streamlined patch
Revision Changes Path
1.1904 +3 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.1903
retrieving revision 1.1904
diff -u -r1.1903 -r1.1904
--- CHANGES 31 Jul 2003 20:30:26 -0000 1.1903
+++ CHANGES 2 Sep 2003 18:17:04 -0000 1.1904
@@ -1,5 +1,8 @@
Changes with Apache 1.3.29
+ *) Prevent creation of subprocess Zombies when using CGI wrappers
+ such as suExec and cgiwrap. PR 21737. [Numerous]
+
*) ab: Overlong credentials given via command line no longer clobber
the buffer. [Andr� Malo]
1.146 +4 -6 apache-1.3/src/main/alloc.c
Index: alloc.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/main/alloc.c,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -r1.145 -r1.146
--- alloc.c 20 Jun 2003 15:05:40 -0000 1.145
+++ alloc.c 2 Sep 2003 18:17:05 -0000 1.146
@@ -2859,12 +2859,10 @@
if ((p->kill_how == kill_after_timeout)
|| (p->kill_how == kill_only_once)) {
/* Subprocess may be dead already. Only need the timeout if not. */
- if (ap_os_kill(p->pid, SIGTERM) == -1) {
- p->kill_how = kill_never;
- }
- else {
- need_timeout = 1;
- }
+ if ( (ap_os_kill(p->pid, SIGTERM) == -1) && (errno == ESRCH) )
+ p->kill_how = kill_never;
+ else
+ need_timeout = 1;
}
else if (p->kill_how == kill_always) {
kill(p->pid, SIGKILL);