]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mod_proxy: Fix over-eager handling of '%' for reverse proxies. PR 29554.
authorJim Jagielski <jim@apache.org>
Thu, 4 Aug 2005 17:07:57 +0000 (17:07 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 4 Aug 2005 17:07:57 +0000 (17:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@227435 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/proxy/proxy_util.c

diff --git a/CHANGES b/CHANGES
index b5293b51d900158c7dd434eacb571b27dcb26e81..1cae65469052e2d3bcaff1a597921f18c6c90a62 100644 (file)
--- 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 a35e02c95a1d83c95d252a91493d3f3e10f0d582..d81c8c51d43672896b5e9b6b1fe769da29e3d728 100644 (file)
--- 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
index 77ec80a568936ab29f070f30765ee6538ec84dd7..61ad91f69874c84d125fa3c1c92693320ff42bf7 100644 (file)
@@ -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]);