You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by mi...@apache.org on 2013/05/13 16:45:49 UTC
svn commit: r1481891 - in /httpd/httpd/trunk: CHANGES
modules/proxy/proxy_util.c
Author: minfrin
Date: Mon May 13 14:45:49 2013
New Revision: 1481891
URL: http://svn.apache.org/r1481891
Log:
mod_proxy: Ensure we don't attempt to amend a table we are iterating
through, ensuring that all headers listed by Connection are removed.
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/modules/proxy/proxy_util.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1481891&r1=1481890&r2=1481891&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon May 13 14:45:49 2013
@@ -1,6 +1,10 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.0
+ *) mod_proxy: Ensure we don't attempt to amend a table we are iterating
+ through, ensuring that all headers listed by Connection are removed.
+ [Graham Leggett, Co-Advisor <coad measurement-factory.com>]
+
*) core: apachectl -S prints wildcard name-based virtual hosts twice.
PR54948 [Eric Covener]
Modified: httpd/httpd/trunk/modules/proxy/proxy_util.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/proxy_util.c?rev=1481891&r1=1481890&r2=1481891&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/proxy_util.c (original)
+++ httpd/httpd/trunk/modules/proxy/proxy_util.c Mon May 13 14:45:49 2013
@@ -3000,13 +3000,13 @@ static int clear_conn_headers(void *data
return 1;
}
-static void proxy_clear_connection(apr_pool_t *p, apr_table_t *headers)
+static void proxy_clear_connection(request_rec *r, apr_table_t *headers)
{
header_dptr x;
- x.pool = p;
+ x.pool = r->pool;
x.table = headers;
apr_table_unset(headers, "Proxy-Connection");
- apr_table_do(clear_conn_headers, &x, headers, "Connection", NULL);
+ apr_table_do(clear_conn_headers, &x, r->headers_in, "Connection", NULL);
apr_table_unset(headers, "Connection");
}
@@ -3194,7 +3194,7 @@ PROXY_DECLARE(int) ap_proxy_create_hdrbr
* apr is compiled with APR_POOL_DEBUG.
*/
headers_in_copy = apr_table_copy(r->pool, r->headers_in);
- proxy_clear_connection(p, headers_in_copy);
+ proxy_clear_connection(r, headers_in_copy);
/* send request headers */
headers_in_array = apr_table_elts(headers_in_copy);
headers_in = (const apr_table_entry_t *) headers_in_array->elts;