From: Yann Ylavic Date: Tue, 7 Sep 2021 10:16:03 +0000 (+0000) Subject: mod_proxy: Don't canonicalize with both nocanon and ProxyPassInterpolateEnv On. X-Git-Tag: 2.5.0-alpha2-ci-test-only~827 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=22895e737d9545985464d8868d7cb05f68df912c;p=thirdparty%2Fapache%2Fhttpd.git mod_proxy: Don't canonicalize with both nocanon and ProxyPassInterpolateEnv On. If nocanon is set, we should match the unparsed_uri against the interpolated alias (not the ProxyPass'ed one) when verifying the resulting length. Otherwise we falsely restore the canonicalized URL in case of mismatch. PR 65549. Submitted by: Joel Self git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893016 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/changes-entries/proxy_nocanon_interpolate.txt b/changes-entries/proxy_nocanon_interpolate.txt new file mode 100644 index 00000000000..a2b033cbbf0 --- /dev/null +++ b/changes-entries/proxy_nocanon_interpolate.txt @@ -0,0 +1,3 @@ + *) mod_proxy: Do not canonicalize the proxied URL when both "nocanon" and + "ProxyPassInterpolateEnv On" are configured. PR 65549. + [Joel Self ] \ No newline at end of file diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 1f5a4b6a861..a4b0ce894c2 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -949,7 +949,7 @@ PROXY_DECLARE(int) ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent, "'%s'; declining", r->uri); return DECLINED; } - if (nocanon && len != alias_match(r->unparsed_uri, ent->fake)) { + if (nocanon && len != alias_match(r->unparsed_uri, fake)) { mismatch = 1; use_uri = r->uri; }