httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject [Bug 56074] ProxyPassMatch-Rules break by upgrade from 2.4.4 to 2.4.6
Date Fri, 31 Jan 2014 15:15:25 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=56074

--- Comment #3 from Ruediger Pluem <rpluem@apache.org> ---
Can you please try if the following patch solves your issue?

Index: proxy_util.c
===================================================================
--- proxy_util.c        (revision 1562932)
+++ proxy_util.c        (working copy)
@@ -1116,6 +1116,9 @@
                                                 const char *url)
 {
     apr_uri_t puri;
+    if (!url) {
+        return NULL;
+    }
     if (apr_uri_parse(p, url, &puri) != APR_SUCCESS) {
         return apr_psprintf(p, "unable to parse: %s", url);
     }
Index: mod_proxy.c
===================================================================
--- mod_proxy.c (revision 1562932)
+++ mod_proxy.c (working copy)
@@ -1584,13 +1584,26 @@
     /* Distinguish the balancer from worker */
     if (ap_proxy_valid_balancer_name(r, 9)) {
         proxy_balancer *balancer = ap_proxy_get_balancer(cmd->pool, conf, r,
0);
+        char *fake_copy;
+
+        /*
+         * In the regex case supplying a fake URL doesn't make sense as it
+         * cannot be parsed anyway with apr_uri_parse later on in
+         * ap_proxy_define_balancer / ap_proxy_update_balancer
+         */
+        if (use_regex) {
+            fake_copy = NULL;
+        }
+        else {
+            fake_copy = f;
+        }
         if (!balancer) {
-            const char *err = ap_proxy_define_balancer(cmd->pool, &balancer,
conf, r, f, 0);
+            const char *err = ap_proxy_define_balancer(cmd->pool, &balancer,
conf, r, fake_copy, 0);
             if (err)
                 return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL);
         }
         else {
-            ap_proxy_update_balancer(cmd->pool, balancer, f);
+            ap_proxy_update_balancer(cmd->pool, balancer, fake_copy);
         }
         for (i = 0; i < arr->nelts; i++) {
             const char *err = set_balancer_param(conf, cmd->pool, balancer,
elts[i].key,

-- 
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


Mime
View raw message