You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2009/08/07 22:29:21 UTC

DO NOT REPLY [Bug 47664] New: ap_proxy_canonenc: does not recode all high-byte chars back into %HH form

https://issues.apache.org/bugzilla/show_bug.cgi?id=47664

           Summary: ap_proxy_canonenc: does not recode all high-byte chars
                    back into %HH form
           Product: Apache httpd-2
           Version: 2.2.12
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_proxy
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: marco.walther@sun.com


--- Comment #0 from Marco Walther <ma...@sun.com> 2009-08-07 13:29:19 PDT ---
I have a URL with an utf-8 encoded `รณ' in it. mod_proxy mangles that when
`nocanon' is not set.

The problem is that one byte is translated back into the %HH form but the othe
one is not:-(

Some pieces of errorlog: (I added some log entries not in the normal source;-)
---------------------------------------------------------------
mod_proxy_balancer.c(46): proxy: BALANCER: canonicalising URL
//cluster_foo/projects/mw-test/pages/\xc3\xb3/edit
mod_proxy_balancer.c(71): proxy: BALANCER: mw canonicalised URL
projects/mw-test/pages/\xc3%B3/edit (len 32)
mod_proxy_balancer.c(82): proxy: BALANCER: mw canonicalised filename
proxy:balancer://cluster_foo/projects/mw-test/pages/\xc3%B3/edit (len 63)
mod_proxy_balancer.c(1152): proxy: Entering bybusyness for BALANCER
(balancer://cluster_foo)
mod_proxy_balancer.c(1211): proxy: bybusyness selected worker "http://be:8280"
: busy 0 : lbstatus -1
mod_proxy_balancer.c(581): proxy: BALANCER (balancer://cluster_foo) worker
(http
://be:8280) rewritten to http://be:8280/projects/mw-test/pages/\xc3%B3/edit
mod_proxy.c(993): Running scheme balancer handler (attempt 0)
mod_proxy_http.c(1920): proxy: HTTP: serving URL
http://be:8280/projects/mw-test/pages/\xc3%B3/edit
proxy_util.c(1991): proxy: HTTP: has acquired connection for (be)
proxy_util.c(2047): proxy: connecting
http://be:8280/projects/mw-test/pages/\xc3%B3/edit to be:8280
proxy_util.c(2145): proxy: connected /projects/mw-test/pages/\xc3%B3/edit to
be:8280
-----------------------------------------------------

The problem seems to be in proxy_util.c - ap_proxy_canonenc, some (?) char's
are not recoded.

I changed the source a bit and now it seems to work better: The diff is for
2.2.11 but that area did not change in 2.2.12!!

--- httpd-2.2.11-orig/modules/proxy/proxy_util.c     Tue Nov 11 12:04:34 2008
+++ httpd-2.2.11-work/modules/proxy/proxy_util.c     Fri Aug  7 12:38:20 2009
@@ -213,7 +213,7 @@
             }
         }
 /* recode it, if necessary */
-        if (!apr_isalnum(ch) && !strchr(allowed, ch)) {
+        if (!(apr_isascii(ch) && apr_isalnum(ch)) && !strchr(allowed, ch)) {
             ap_proxy_c2hex(ch, &y[j]);
             j += 2;
         }

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


DO NOT REPLY [Bug 47664] ap_proxy_canonenc: does not recode all high-byte chars back into %HH form

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=47664

Eric Covener <co...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |PatchAvailable

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org