]> granicus.if.org Git - apache/commitdiff
mod_proxy_fcgi: Avoid passing a filename of proxy:fcgi:// as
authorGraham Leggett <minfrin@apache.org>
Mon, 13 Jun 2016 22:53:08 +0000 (22:53 +0000)
committerGraham Leggett <minfrin@apache.org>
Mon, 13 Jun 2016 22:53:08 +0000 (22:53 +0000)
SCRIPT_FILENAME to a FastCGI server. PR59618.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1748324 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/proxy/mod_proxy_fcgi.c

diff --git a/CHANGES b/CHANGES
index e22a0eb26d9743f22de443cb6485fb9250a030e6..9f99c832e308d25dea2a14b03d895cbcad4ce5d9 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,10 @@
 
 Changes with Apache 2.4.21
 
+  *) mod_proxy_fcgi: Avoid passing a filename of proxy:fcgi:// as
+     SCRIPT_FILENAME to a FastCGI server. PR59618.
+     [Jacob Champion <champion.pxi gmail.com>]
+
   *) mod_dav: Add dav_get_provider_name() function to obtain the name
      of the provider from mod_dav.
      [Jari Urpalainen <jari.urpalainen nokia.com>]
index 43c243e41493670f4608a7cfdf5c0dd62a0706c9..19047ff6e5cbe8e5140890dbcdbf9c293686b536 100644 (file)
@@ -262,11 +262,21 @@ static apr_status_t send_environment(proxy_conn_rec *conn, request_rec *r,
        }
     }
 
-    /* Strip balancer prefix */
-    if (r->filename && !strncmp(r->filename, "proxy:balancer://", 17)) { 
-        char *newfname = apr_pstrdup(r->pool, r->filename+17);
-        newfname = ap_strchr(newfname, '/');
-        r->filename = newfname;
+    /* Strip proxy: prefixes */
+    if (r->filename) {
+        char *newfname = NULL;
+
+        if (!strncmp(r->filename, "proxy:balancer://", 17)) {
+            newfname = apr_pstrdup(r->pool, r->filename+17);
+        }
+        else if (!strncmp(r->filename, "proxy:fcgi://", 13)) {
+            newfname = apr_pstrdup(r->pool, r->filename+13);
+        }
+
+        if (newfname) {
+            newfname = ap_strchr(newfname, '/');
+            r->filename = newfname;
+        }
     }
 
     ap_add_common_vars(r);