Commit 530db104 authored by Jim Jagielski's avatar Jim Jagielski
Browse files

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
parent c229fdff
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
                                                         -*- 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]
+0 −8
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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]);