From: Francesco Chemolli <5175948+kinkie@users.noreply.github.com> Date: Fri, 2 Feb 2024 13:35:39 +0000 (+0000) Subject: Use AnyP::Uri::Decode() for url_regex checks (#1658) X-Git-Tag: SQUID_7_0_1~219 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cbb9bf129882a335f3cb0cbf9269ef05a57157df;p=thirdparty%2Fsquid.git Use AnyP::Uri::Decode() for url_regex checks (#1658) --- diff --git a/src/acl/Url.cc b/src/acl/Url.cc index 6e9e91a754..76cd91258e 100644 --- a/src/acl/Url.cc +++ b/src/acl/Url.cc @@ -11,18 +11,17 @@ #include "squid.h" #include "acl/FilledChecklist.h" #include "acl/Url.h" +#include "anyp/Uri.h" #include "HttpRequest.h" -#include "rfc1738.h" int Acl::UrlCheck::match(ACLChecklist * const ch) { const auto checklist = Filled(ch); - char *esc_buf = SBufToCstring(checklist->request->effectiveRequestUri()); - rfc1738_unescape(esc_buf); - int result = data->match(esc_buf); - xfree(esc_buf); + // TODO: Consider refactoring so that effectiveRequestUri() returns decoded URI. + auto decodedUri = AnyP::Uri::Decode(checklist->request->effectiveRequestUri()); + const auto result = data->match(decodedUri.c_str()); return result; }