You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2016/06/10 22:53:07 UTC

svn commit: r1747810 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_fcgi.c

Author: covener
Date: Fri Jun 10 22:53:07 2016
New Revision: 1747810

URL: http://svn.apache.org/viewvc?rev=1747810&view=rev
Log:
Strip proxy:fcgi:// just like proxy:balancer

Submitted By: Jacob Champion <champion.pxi gmail.com>
Committed By: covener


Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1747810&r1=1747809&r2=1747810&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Fri Jun 10 22:53:07 2016
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_proxy_fcgi: Avoid passing a filename of proxy:fcgi:// as
+     SCRIPT_FILENAME to a FastCGI server. PR59618.
+     [Jacob Champion <champion.pxi gmail.com>]
+
   *) core: Add -DDUMP_INCLUDES configtest option to show the tree
      of Included configuration files.  [Jacob Champion <champion.pxi gmail.com>]
 

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c?rev=1747810&r1=1747809&r2=1747810&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c Fri Jun 10 22:53:07 2016
@@ -262,11 +262,21 @@ static apr_status_t send_environment(pro
        }
     }
 
-    /* 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);