diff options
author | Jim Jagielski <jim@apache.org> | 2005-08-04 17:07:57 +0000 |
---|---|---|
committer | Jim Jagielski <jim@apache.org> | 2005-08-04 17:07:57 +0000 |
commit | 3aae66892196fcf50c3290f14ece46beaa2c3883 (patch) | |
tree | 9ca98480cba68a06b8dd3582c7030b4046191e73 | |
parent | eb5380b604d913ddfce5967b62b7738147e45f73 (diff) | |
download | httpd-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-- | CHANGES | 3 | ||||
-rw-r--r-- | STATUS | 8 | ||||
-rw-r--r-- | modules/proxy/proxy_util.c | 2 |
3 files changed, 4 insertions, 9 deletions
@@ -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] @@ -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]); |