]> git.ipfire.org Git - thirdparty/squid.git/commit
Fix assertion failed: external_acl.cc:908: ch->auth_user_request != NULL
authorAmos Jeffries <squid3@treenet.co.nz>
Sun, 4 Dec 2011 06:44:05 +0000 (23:44 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 4 Dec 2011 06:44:05 +0000 (23:44 -0700)
commitd28c476f5f068e3a1a509be8189b06cf91877d63
tree24216c03c7fb5de92e416bc048f4040d08bb687f
parenta17bf80622f8f80d0ce7c0d173ea032a42a520b5
Fix assertion failed: external_acl.cc:908: ch->auth_user_request != NULL

External ACL sometimes cannot find the credentials in ACL Checklist even
if they are attached to the HTTPRequest object.

This seems to happen when the checklist is created and the line match
started before the credentials are known. The credentials validation
updates the HTTP request state but is not aware of ACL checklists needing
to be updated so it never happens.

This patch:
* locate the %LOGIN value from either place where credentials can be found,
* updates the checklist if it was unset,
* passes '-' to the helper if no credentials at all were given.

Although the earlier logics forcing a lookup means this '-' case should
not happen it might if the external ACL were processed in 'fast' check.
src/external_acl.cc