mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO.

To accommodate for configs like:
    ProxyPass /uwsgi-pp uwsgi://localhost:8001/
which before r1892805 did not produce a leading double-slash in PATH_INFO.

Submitted by: rpluem



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894074 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yann Ylavic
2021-10-09 15:22:00 +00:00
parent 2baea6bf86
commit fa7f375306
2 changed files with 12 additions and 2 deletions

View File

@ -0,0 +1,2 @@
*) mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO.
PR 65616. [Ruediger Pluem]

View File

@ -476,14 +476,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);