From: hno <> Date: Tue, 6 May 2003 06:13:39 +0000 (+0000) Subject: Bug #577: assertion failed: cbdata.c:224: "c->y == c" when external_acl X-Git-Tag: SQUID_3_0_PRE1~213 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=466090ac089b9062d58210719457c200bac65006;p=thirdparty%2Fsquid.git Bug #577: assertion failed: cbdata.c:224: "c->y == c" when external_acl helpers crashes --- diff --git a/src/external_acl.cc b/src/external_acl.cc index 3846e3def4..de690e130c 100644 --- a/src/external_acl.cc +++ b/src/external_acl.cc @@ -1,6 +1,6 @@ /* - * $Id: external_acl.cc,v 1.35 2003/03/19 18:03:04 hno Exp $ + * $Id: external_acl.cc,v 1.36 2003/05/06 00:13:39 hno Exp $ * * DEBUG: section 82 External ACL * AUTHOR: Henrik Nordstrom, MARA Systems AB @@ -860,7 +860,7 @@ externalAclHandleReply(void *data, char *reply) char *t; char *user = NULL; char *error = NULL; - external_acl_entry *entry; + external_acl_entry *entry = NULL; debug(82, 2) ("externalAclHandleReply: reply=\"%s\"\n", reply); @@ -890,13 +890,16 @@ externalAclHandleReply(void *data, char *reply) if (reply) entry = external_acl_cache_add(state->def, state->key, result, user, error); else { - entry = (external_acl_entry *)hash_lookup(state->def->cache, state->key); + if (reply) + entry = (external_acl_entry *)hash_lookup(state->def->cache, state->key); + else { + external_acl_entry *oldentry = (external_acl_entry *)hash_lookup(state->def->cache, state->key); - if (entry) - external_acl_cache_delete(state->def, entry); + if (oldentry) + external_acl_cache_delete(state->def, oldentry); + } } - } else - entry = NULL; + } do { void *cbdata;