From: Amos Jeffries Date: Mon, 22 Mar 2010 10:00:14 +0000 (+1300) Subject: Bug 2827: assertion failed: FilledChecklist.cc:90: "conn() != NULL" X-Git-Tag: SQUID_3_2_0_1~340 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3799d265226227a7500e208b7b016a004f30e540;p=thirdparty%2Fsquid.git Bug 2827: assertion failed: FilledChecklist.cc:90: "conn() != NULL" Assertion was bunk. We can happily continue without unlocking a non-existent lock. --- diff --git a/src/acl/FilledChecklist.cc b/src/acl/FilledChecklist.cc index 9b2c500549..dad2ed5010 100644 --- a/src/acl/FilledChecklist.cc +++ b/src/acl/FilledChecklist.cc @@ -86,15 +86,18 @@ ACLFilledChecklist::checkCallback(allow_t answer) if (auth_user_request) { /* the filled_checklist lock */ AUTHUSERREQUESTUNLOCK(auth_user_request, "ACLFilledChecklist"); + /* it might have been connection based */ - assert(conn() != NULL); /* * DPW 2007-05-08 * yuck, this make me uncomfortable. why do this here? * ConnStateData will do its own unlocking. */ - AUTHUSERREQUESTUNLOCK(conn()->auth_user_request, "conn via ACLFilledChecklist"); - conn()->auth_type = AUTH_BROKEN; + /* BUG 2827: the connection may also not exist. ie fast ACL tests vs client disconnection. */ + if (conn()) { + AUTHUSERREQUESTUNLOCK(conn()->auth_user_request, "conn via ACLFilledChecklist"); + conn()->auth_type = AUTH_BROKEN; + } } ACLChecklist::checkCallback(answer); // may delete us