]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Use AnyP::Uri::Decode() for url_regex checks (#1658)
authorFrancesco Chemolli <5175948+kinkie@users.noreply.github.com>
Fri, 2 Feb 2024 13:35:39 +0000 (13:35 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Fri, 2 Feb 2024 13:35:50 +0000 (13:35 +0000)
src/acl/Url.cc

index 6e9e91a754147e94688823508753c901775309e4..76cd91258ec84f5b12cf0f5a708c9aee2dc67587 100644 (file)
 #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;
 }