Loading CHANGES +3 −0 Changes for CHANGES: 3 added lines, 0 removed lines. Original line number Diff line number Diff line -*- coding: utf-8 -*- Changes with Apache 2.0.55 *) worker MPM: Fix a memory leak which can occur after an aborted connection in some limited circumstances. [Greg Ames] *) mod_ldap: Fix PR 36563. Keep track of the number of attributes retrieved from LDAP so that all of the values can be properly cached even if the value is NULL. Loading STATUS +0 −9 Changes for STATUS: 0 added lines, 9 removed lines. Original line number Diff line number Diff line Loading @@ -110,15 +110,6 @@ RELEASE SHOWSTOPPERS: +1: jorton, wrowe, trawick wrowe cautions to backport to 2.2.x branch as well. *) SECURITY: CAN-2005-2970 (cve.mitre.org) worker MPM: Fix a memory leak which can occur after an aborted connection in some limited circumstances. http://people.apache.org/~trawick/CAN-2005-2970.txt +1: trawick, brianp +0: wrowe [greg ames and jeff trawick were of two minds, I'm +1 on either patch they mutually agree upon.] PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] Loading server/mpm/worker/worker.c +8 −8 Changes for server/mpm/worker/worker.c: 8 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -574,8 +574,7 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) int process_slot = ti->pid; apr_pool_t *tpool = apr_thread_pool_get(thd); void *csd = NULL; apr_pool_t *ptrans; /* Pool for per-transaction stuff */ apr_pool_t *recycled_pool = NULL; apr_pool_t *ptrans = NULL; /* Pool for per-transaction stuff */ int n; apr_pollfd_t *pollset; apr_status_t rv; Loading Loading @@ -604,8 +603,11 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) if (listener_may_exit) break; if (!have_idle_worker) { /* the following pops a recycled ptrans pool off a stack * if there is one, in addition to reserving a worker thread */ rv = ap_queue_info_wait_for_idler(worker_queue_info, &recycled_pool); &ptrans); if (APR_STATUS_IS_EOF(rv)) { break; /* we've been signaled to die now */ } Loading Loading @@ -682,8 +684,9 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) } got_fd: if (!listener_may_exit) { /* create a new transaction pool for each accepted socket */ if (recycled_pool == NULL) { if (ptrans == NULL) { /* we can't use a recycled transaction pool this time. * create a new transaction pool */ apr_allocator_t *allocator; apr_allocator_create(&allocator); Loading @@ -691,9 +694,6 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) apr_pool_create_ex(&ptrans, NULL, NULL, allocator); apr_allocator_owner_set(allocator, ptrans); } else { ptrans = recycled_pool; } apr_pool_tag(ptrans, "transaction"); rv = lr->accept_func(&csd, lr, ptrans); /* later we trash rv and rely on csd to indicate success/failure */ Loading Loading
CHANGES +3 −0 Changes for CHANGES: 3 added lines, 0 removed lines. Original line number Diff line number Diff line -*- coding: utf-8 -*- Changes with Apache 2.0.55 *) worker MPM: Fix a memory leak which can occur after an aborted connection in some limited circumstances. [Greg Ames] *) mod_ldap: Fix PR 36563. Keep track of the number of attributes retrieved from LDAP so that all of the values can be properly cached even if the value is NULL. Loading
STATUS +0 −9 Changes for STATUS: 0 added lines, 9 removed lines. Original line number Diff line number Diff line Loading @@ -110,15 +110,6 @@ RELEASE SHOWSTOPPERS: +1: jorton, wrowe, trawick wrowe cautions to backport to 2.2.x branch as well. *) SECURITY: CAN-2005-2970 (cve.mitre.org) worker MPM: Fix a memory leak which can occur after an aborted connection in some limited circumstances. http://people.apache.org/~trawick/CAN-2005-2970.txt +1: trawick, brianp +0: wrowe [greg ames and jeff trawick were of two minds, I'm +1 on either patch they mutually agree upon.] PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] Loading
server/mpm/worker/worker.c +8 −8 Changes for server/mpm/worker/worker.c: 8 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -574,8 +574,7 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) int process_slot = ti->pid; apr_pool_t *tpool = apr_thread_pool_get(thd); void *csd = NULL; apr_pool_t *ptrans; /* Pool for per-transaction stuff */ apr_pool_t *recycled_pool = NULL; apr_pool_t *ptrans = NULL; /* Pool for per-transaction stuff */ int n; apr_pollfd_t *pollset; apr_status_t rv; Loading Loading @@ -604,8 +603,11 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) if (listener_may_exit) break; if (!have_idle_worker) { /* the following pops a recycled ptrans pool off a stack * if there is one, in addition to reserving a worker thread */ rv = ap_queue_info_wait_for_idler(worker_queue_info, &recycled_pool); &ptrans); if (APR_STATUS_IS_EOF(rv)) { break; /* we've been signaled to die now */ } Loading Loading @@ -682,8 +684,9 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) } got_fd: if (!listener_may_exit) { /* create a new transaction pool for each accepted socket */ if (recycled_pool == NULL) { if (ptrans == NULL) { /* we can't use a recycled transaction pool this time. * create a new transaction pool */ apr_allocator_t *allocator; apr_allocator_create(&allocator); Loading @@ -691,9 +694,6 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) apr_pool_create_ex(&ptrans, NULL, NULL, allocator); apr_allocator_owner_set(allocator, ptrans); } else { ptrans = recycled_pool; } apr_pool_tag(ptrans, "transaction"); rv = lr->accept_func(&csd, lr, ptrans); /* later we trash rv and rely on csd to indicate success/failure */ Loading