]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Nil request dereference in ACLExtUser and SourceDomainCheck ACLs (#1931)
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Tue, 5 Nov 2024 14:21:19 +0000 (14:21 +0000)
committerAmos Jeffries <yadij@users.noreply.github.com>
Fri, 31 Jan 2025 07:52:27 +0000 (20:52 +1300)
ACLExtUser-based ACLs (i.e. ext_user and ext_user_regex) dereferenced a
nil request pointer when they were used in a context without a request
(e.g., when honoring on_unsupported_protocol).

SourceDomainCheck-based ACLs (i.e. srcdomain and srcdom_regex) have a
similar bug, although we do not know whether broken slow ACL code is
reachable without a request (e.g., on_unsupported_protocol tests cannot
reach that code until that directive starts supporting slow ACLs). This
change does not start to require request presence for these two ACLs to
avoid breaking any existing configurations that "work" without one.

src/acl/ExtUser.h

index 457508ac667891b3705d28748812bb474d1c9a59..a5df49deb6922177655a41e6b7ccb41b80b82698 100644 (file)
@@ -27,6 +27,7 @@ public:
     char const *typeString() const override;
     void parse() override;
     int match(ACLChecklist *checklist) override;
+    bool requiresRequest() const override { return true; }
     SBufList dump() const override;
     bool empty () const override;