From: William A. Rowe Jr Date: Sat, 29 Dec 2007 07:55:30 +0000 (+0000) Subject: Fix winnt bucket_alloc to borrow memory from the transaction X-Git-Tag: 2.2.7~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=352ab75d24ac27c796ca2ab8adbfa3134a9eccfd;p=thirdparty%2Fapache%2Fhttpd.git Fix winnt bucket_alloc to borrow memory from the transaction pool, instead of exhausting pchild memory over a number of connections. PR: 11427 Submitted by: Alex Varju Backport: r607393 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@607394 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/mpm/winnt/child.c b/server/mpm/winnt/child.c index d302253e4e8..188e1f49afc 100644 --- a/server/mpm/winnt/child.c +++ b/server/mpm/winnt/child.c @@ -80,6 +80,7 @@ void mpm_recycle_completion_context(PCOMP_CONTEXT context) */ if (context) { apr_pool_clear(context->ptrans); + context->ba = apr_bucket_alloc_create(context->ptrans); context->next = NULL; ResetEvent(context->Overlapped.hEvent); apr_thread_mutex_lock(qlock); @@ -175,7 +176,7 @@ PCOMP_CONTEXT mpm_get_completion_context(void) apr_pool_tag(context->ptrans, "transaction"); context->accept_socket = INVALID_SOCKET; - context->ba = apr_bucket_alloc_create(pchild); + context->ba = apr_bucket_alloc_create(context->ptrans); apr_atomic_inc32(&num_completion_contexts); apr_thread_mutex_unlock(child_lock); @@ -432,7 +433,7 @@ static PCOMP_CONTEXT win9x_get_connection(PCOMP_CONTEXT context) apr_pool_create_ex(&context->ptrans, pchild, NULL, allocator); apr_allocator_owner_set(allocator, context->ptrans); apr_pool_tag(context->ptrans, "transaction"); - context->ba = apr_bucket_alloc_create(pchild); + context->ba = apr_bucket_alloc_create(context->ptrans); apr_thread_mutex_unlock(child_lock); }