$NetBSD: patch-ar,v 1.1 2007/06/28 01:20:53 lkundrak Exp $ Part of fix for CVE-2007-3304 Denial of Service. --- server/mpm/prefork/prefork.c.orig 2007-06-28 02:53:26.000000000 +0200 +++ server/mpm/prefork/prefork.c @@ -1127,7 +1127,7 @@ int ap_mpm_run(apr_pool_t *_pconf, apr_p for (index = 0; index < ap_daemons_limit; ++index) { if (ap_scoreboard_image->servers[index][0].status != SERVER_DEAD) { /* Ask each child to close its listeners. */ - kill(MPM_CHILD_PID(index), AP_SIG_GRACEFUL); + ap_mpm_safe_kill(MPM_CHILD_PID(index), AP_SIG_GRACEFUL); active_children++; } } @@ -1166,7 +1166,7 @@ int ap_mpm_run(apr_pool_t *_pconf, apr_p active_children = 0; for (index = 0; index < ap_daemons_limit; ++index) { if (MPM_CHILD_PID(index) != 0) { - if (kill(MPM_CHILD_PID(index), 0) == 0) { + if (ap_mpm_safe_kill(MPM_CHILD_PID(index), 0) == 0) { active_children = 1; /* Having just one child is enough to stay around */ break; @@ -1222,7 +1222,7 @@ int ap_mpm_run(apr_pool_t *_pconf, apr_p * piped loggers, etc. They almost certainly won't handle * it gracefully. */ - kill(ap_scoreboard_image->parent[index].pid, AP_SIG_GRACEFUL); + ap_mpm_safe_kill(ap_scoreboard_image->parent[index].pid, AP_SIG_GRACEFUL); } } }