View | Details | Raw Unified | Return to bug 53736
Collapse All | Expand All

(-)httpd-2.2.x/modules/proxy/mod_proxy_balancer.c (-4 / +14 lines)
Lines 716-726 Link Here
716
                if ((tok = ap_strchr(val, '&')))
716
                if ((tok = ap_strchr(val, '&')))
717
                    *tok++ = '\0';
717
                    *tok++ = '\0';
718
                /*
718
                /*
719
                 * Special case: workers are allowed path information
719
                 * IPv6 address backends contain [ ] characters which are
720
                 * escaped as %5b %5d *twice*, so we need to unescape them
721
                 * twice.
722
                 * 2013-02-08
723
                 * bpkroth
724
                 * https://issues.apache.org/bugzilla/show_bug.cgi?id=53736
720
                 */
725
                 */
721
                if ((access_status = ap_unescape_url(val)) != OK)
726
                for (i = 1; i <= 2; i++) {
722
                    if (strcmp(args, "w") || (access_status !=  HTTP_NOT_FOUND))
727
                        /*
723
                        return access_status;
728
                         * Special case: workers are allowed path information
729
                         */
730
                        if ((access_status = ap_unescape_url(val)) != OK)
731
                            if (strcmp(args, "w") || (access_status !=  HTTP_NOT_FOUND))
732
                                return access_status;
733
                }
724
                apr_table_setn(params, args, val);
734
                apr_table_setn(params, args, val);
725
                args = tok;
735
                args = tok;
726
            }
736
            }

Return to bug 53736