From 22895e737d9545985464d8868d7cb05f68df912c Mon Sep 17 00:00:00 2001 From: Yann Ylavic Date: Tue, 7 Sep 2021 10:16:03 +0000 Subject: [PATCH] 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 --- changes-entries/proxy_nocanon_interpolate.txt | 3 +++ modules/proxy/mod_proxy.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 changes-entries/proxy_nocanon_interpolate.txt diff --git a/changes-entries/proxy_nocanon_interpolate.txt b/changes-entries/proxy_nocanon_interpolate.txt new file mode 100644 index 0000000000..a2b033cbbf --- /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 1f5a4b6a86..a4b0ce894c 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; }