]> git.ipfire.org Git - thirdparty/squid.git/commit
Removed effectively unused acl_checklist members (#1860)
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Mon, 8 Jul 2024 10:28:08 +0000 (10:28 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Mon, 8 Jul 2024 17:24:34 +0000 (17:24 +0000)
commitf69f4cee5cbe44bf60f8acb30b777a24e631d8ff
tree1c18e3be926daaefdcea330cf2f180f775757024
parent8cc5e88c7fb0d73ce413d1871641b93403d1ea1a
Removed effectively unused acl_checklist members (#1860)

Four classes had problematic acl_checklist data members:

* SnmpRequest does not use acl_checklist at all.

* ClientRequestContext and Adaptation::AccessCheck do not use
  acl_checklist beyond checklist creation/configuration code. A local
  variable works better for creation/configuration, and having a data
  member complicates upcoming checklist creation code improvements.

* PeerSelector creates/configures a checklist and uses acl_checklist
  during destruction, but the latter code is marked as a Squid BUG and
  is itself buggy: Checklist objects are cbdata-protected. They must
  have one owner at any time. Starting with a nonBlockingCheck() call,
  that owner is the checklist object itself. That owner destructs the
  checklist object (i.e. "this"). If that Squid BUG code could be
  reached, Squid would delete the same object twice. There are no known
  ways to trigger that bug.
src/ClientRequestContext.h
src/PeerSelectState.h
src/SnmpRequest.h
src/adaptation/AccessCheck.cc
src/adaptation/AccessCheck.h
src/client_side_request.cc
src/peer_select.cc