]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge of r1894074 from trunk:
authorStefan Eissing <icing@apache.org>
Wed, 17 Nov 2021 08:42:35 +0000 (08:42 +0000)
committerStefan Eissing <icing@apache.org>
Wed, 17 Nov 2021 08:42:35 +0000 (08:42 +0000)
  *) mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO.
     PR 65616.  [Ruediger Pluem]

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

changes-entries/uwsgi-path_info.txt [new file with mode: 0644]
modules/proxy/mod_proxy_uwsgi.c

diff --git a/changes-entries/uwsgi-path_info.txt b/changes-entries/uwsgi-path_info.txt
new file mode 100644 (file)
index 0000000..beb0a67
--- /dev/null
@@ -0,0 +1,2 @@
+  *) mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO.
+     PR 65616.  [Ruediger Pluem]
index 4d7589c82c5924afb2ff8d8be9aec6e4427e71db..e02450ef0610a0fc0b6fd3981fdc139647d3e5eb 100644 (file)
@@ -471,14 +471,22 @@ static int uwsgi_handler(request_rec *r, proxy_worker * worker,
 
     /* ADD PATH_INFO (unescaped) */
     u_path_info = ap_strchr(url + sizeof(UWSGI_SCHEME) + 2, '/');
-    if (!u_path_info || ap_unescape_url(u_path_info) != OK) {
+    if (!u_path_info) {
+        u_path_info = apr_pstrdup(r->pool, "/");
+    }
+    else if (ap_unescape_url(u_path_info) != OK) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(10100)
                       "unable to decode uwsgi uri: %s", url);
         return HTTP_INTERNAL_SERVER_ERROR;
     }
+    else {
+        /* Remove duplicate slashes at the beginning of PATH_INFO */
+        while (u_path_info[1] == '/') {
+            u_path_info++;
+        }
+    }
     apr_table_add(r->subprocess_env, "PATH_INFO", u_path_info);
 
-
     /* Create space for state information */
     status = ap_proxy_acquire_connection(UWSGI_SCHEME, &backend, worker,
                                          r->server);