From: serassio <> Date: Thu, 9 Jun 2005 22:04:30 +0000 (+0000) Subject: Bug #1201: assertion failed: cbdata.cc:402: "c->locks > 0" X-Git-Tag: SQUID_3_0_PRE4~724 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=506768d93c0e7d6ab1c3bdbe82377d9ad73be1b6;p=thirdparty%2Fsquid.git Bug #1201: assertion failed: cbdata.cc:402: "c->locks > 0" This is a short term patch that should allow the usage of broken acls, waiting for full refactoring. --- diff --git a/src/DelayId.cc b/src/DelayId.cc index 163aec420e..9a384a3b59 100644 --- a/src/DelayId.cc +++ b/src/DelayId.cc @@ -1,6 +1,6 @@ /* - * $Id: DelayId.cc,v 1.15 2003/09/21 00:30:48 robertc Exp $ + * $Id: DelayId.cc,v 1.16 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 77 Delay Pools * AUTHOR: Robert Collins @@ -114,7 +114,7 @@ DelayId::DelayClient(clientHttpRequest * http) ch.request = requestLink(r); - ch.accessList = DelayPools::delay_data[pool].access; + ch.accessList = cbdataReference(DelayPools::delay_data[pool].access); if (DelayPools::delay_data[pool].theComposite().getRaw() && ch.fastCheck()) { diff --git a/src/client_side.cc b/src/client_side.cc index cd1d49d0d3..50d829427e 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -1,6 +1,6 @@ /* - * $Id: client_side.cc,v 1.685 2005/06/05 23:29:02 hno Exp $ + * $Id: client_side.cc,v 1.686 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 33 Client-side Routines * AUTHOR: Duane Wessels @@ -2864,7 +2864,7 @@ httpAccept(int sock, int newfd, ConnectionDetail *details, identChecklist.my_port = ntohs(details->me.sin_port); - identChecklist.accessList = Config.accessList.identLookup; + identChecklist.accessList = cbdataReference(Config.accessList.identLookup); if (identChecklist.fastCheck()) identStart(&details->me, &details->peer, clientIdentDone, connState); @@ -3035,7 +3035,7 @@ httpsAccept(int sock, int newfd, ConnectionDetail *details, identChecklist.my_port = ntohs(details->me.sin_port); - identChecklist.accessList = Config.accessList.identLookup; + identChecklist.accessList = cbdataReference(Config.accessList.identLookup); if (identChecklist.fastCheck()) identStart(&details->me, &details->peer, clientIdentDone, connState); diff --git a/src/forward.cc b/src/forward.cc index a9ce3e55b4..47f7fa2541 100644 --- a/src/forward.cc +++ b/src/forward.cc @@ -1,6 +1,6 @@ /* - * $Id: forward.cc,v 1.127 2005/04/18 21:52:42 hno Exp $ + * $Id: forward.cc,v 1.128 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 17 Request Forwarding * AUTHOR: Duane Wessels @@ -879,7 +879,7 @@ fwdStart(int fd, StoreEntry * e, HttpRequest * r) ch.my_addr = r->my_addr; ch.my_port = r->my_port; ch.request = requestLink(r); - ch.accessList = Config.accessList.miss; + ch.accessList = cbdataReference(Config.accessList.miss); answer = ch.fastCheck(); ch.accessList = NULL; diff --git a/src/http.cc b/src/http.cc index d27ee1c353..97fba72236 100644 --- a/src/http.cc +++ b/src/http.cc @@ -1,6 +1,6 @@ /* - * $Id: http.cc,v 1.450 2005/05/09 17:11:57 hno Exp $ + * $Id: http.cc,v 1.451 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 11 Hypertext Transfer Protocol (HTTP) * AUTHOR: Harvest Derived @@ -1819,7 +1819,9 @@ httpSendRequestEntityDone(int fd, void *data) ACLChecklist ch; debug(11, 5) ("httpSendRequestEntityDone: FD %d\n", fd); ch.request = requestLink(httpState->request); - ch.accessList = Config.accessList.brokenPosts; + + if (Config.accessList.brokenPosts) + ch.accessList = cbdataReference(Config.accessList.brokenPosts); if (!Config.accessList.brokenPosts) { debug(11, 5) ("httpSendRequestEntityDone: No brokenPosts list\n"); diff --git a/src/icp_v2.cc b/src/icp_v2.cc index d0ca684efd..f6076224a2 100644 --- a/src/icp_v2.cc +++ b/src/icp_v2.cc @@ -1,6 +1,6 @@ /* - * $Id: icp_v2.cc,v 1.86 2005/06/05 15:12:46 serassio Exp $ + * $Id: icp_v2.cc,v 1.87 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 12 Internet Cache Protocol * AUTHOR: Duane Wessels @@ -398,7 +398,7 @@ icpAccessAllowed(struct sockaddr_in *from, HttpRequest * icp_request) checklist.src_addr = from->sin_addr; checklist.my_addr = no_addr; checklist.request = requestLink(icp_request); - checklist.accessList = Config.accessList.icp; + checklist.accessList = cbdataReference(Config.accessList.icp); int result = checklist.fastCheck(); checklist.accessList = NULL; return result; diff --git a/src/neighbors.cc b/src/neighbors.cc index 9dbaad15aa..1bc96f104f 100644 --- a/src/neighbors.cc +++ b/src/neighbors.cc @@ -1,6 +1,6 @@ /* - * $Id: neighbors.cc,v 1.330 2005/04/18 21:52:42 hno Exp $ + * $Id: neighbors.cc,v 1.331 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 15 Neighbor Routines * AUTHOR: Harvest Derived @@ -185,7 +185,7 @@ peerAllowedToUse(const peer * p, HttpRequest * request) checklist.request = requestLink(request); - checklist.accessList = p->access; + checklist.accessList = cbdataReference(p->access); #if 0 && USE_IDENT /* diff --git a/src/snmp_core.cc b/src/snmp_core.cc index feabc58cec..ce951aee15 100644 --- a/src/snmp_core.cc +++ b/src/snmp_core.cc @@ -1,6 +1,6 @@ /* - * $Id: snmp_core.cc,v 1.67 2005/05/05 15:44:45 serassio Exp $ + * $Id: snmp_core.cc,v 1.68 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 49 SNMP support * AUTHOR: Glenn Chisholm @@ -539,12 +539,12 @@ snmpDecodePacket(snmp_request_t * rq) ACLChecklist checklist; checklist.src_addr = rq->from.sin_addr; checklist.snmp_community = (char *) Community; - checklist.accessList = Config.accessList.snmp; - if (Community) + if (Community) { + checklist.accessList = cbdataReference(Config.accessList.snmp); allow = checklist.fastCheck(); - - checklist.accessList = NULL; + checklist.accessList = NULL; + } if ((snmp_coexist_V2toV1(PDU)) && (Community) && (allow)) { rq->community = Community; diff --git a/src/tunnel.cc b/src/tunnel.cc index d6ace0e622..d352c8197e 100644 --- a/src/tunnel.cc +++ b/src/tunnel.cc @@ -1,6 +1,6 @@ /* - * $Id: tunnel.cc,v 1.149 2004/12/27 15:59:55 hno Exp $ + * $Id: tunnel.cc,v 1.150 2005/06/09 16:04:30 serassio Exp $ * * DEBUG: section 26 Secure Sockets Layer Proxy * AUTHOR: Duane Wessels @@ -602,7 +602,7 @@ sslStart(clientHttpRequest * http, size_t * size_ptr, int *status_ptr) ch.my_addr = request->my_addr; ch.my_port = request->my_port; ch.request = requestLink(request); - ch.accessList = Config.accessList.miss; + ch.accessList = cbdataReference(Config.accessList.miss); answer = ch.fastCheck(); ch.accessList = NULL;