summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Jagielski <jim@apache.org>2005-08-04 17:07:57 +0000
committerJim Jagielski <jim@apache.org>2005-08-04 17:07:57 +0000
commit3aae66892196fcf50c3290f14ece46beaa2c3883 (patch)
tree9ca98480cba68a06b8dd3582c7030b4046191e73
parenteb5380b604d913ddfce5967b62b7738147e45f73 (diff)
downloadhttpd-3aae66892196fcf50c3290f14ece46beaa2c3883.tar.gz
mod_proxy: Fix over-eager handling of '%' for reverse proxies. PR 29554.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@227435 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--CHANGES3
-rw-r--r--STATUS8
-rw-r--r--modules/proxy/proxy_util.c2
3 files changed, 4 insertions, 9 deletions
diff --git a/CHANGES b/CHANGES
index b5293b51d9..1cae654690 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
-*- coding: utf-8 -*-
Changes with Apache 2.0.55
+ *) mod_proxy: Fix over-eager handling of '%' for reverse proxies.
+ PR 29554. [Jim Jagielski]
+
*) mod_ldap: Fix a possible crash in shared memory cache handling.
PR 34209. [Joe Orton]
diff --git a/STATUS b/STATUS
index a35e02c95a..d81c8c51d4 100644
--- a/STATUS
+++ b/STATUS
@@ -191,14 +191,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ please append new backports at the end of this list not the top. ]
- *) ap_proxy_canonenc() is over-eager in handling '%' for reverse
- proxies (PR: 29554).
- Index: modules/proxy/proxy_util.c
- - if (isenc && ch == '%') {
- + if (isenc && (isenc != PROXYREQ_REVERSE) && ch == '%') {
-
- +1: jim, pquerna, wrowe
-
*) several changes to improve logging of connection-oriented errors, including
ap_log_cerror() API (needs minor bump in addition to changes below)
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/core.c?r1=1.289&r2=1.291
diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c
index 77ec80a568..61ad91f698 100644
--- a/modules/proxy/proxy_util.c
+++ b/modules/proxy/proxy_util.c
@@ -161,7 +161,7 @@ PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, en
continue;
}
/* decode it if not already done */
- if (isenc && ch == '%') {
+ if (isenc && (isenc != PROXYREQ_REVERSE) && (ch == '%')) {
if (!apr_isxdigit(x[i + 1]) || !apr_isxdigit(x[i + 2]))
return NULL;
ch = ap_proxy_hex2c(&x[i + 1]);