--------------------- PatchSet 4912 Date: 2007/06/29 15:43:22 Author: amosjeffries Branch: squid3-ipv6 Tag: (none) Log: The RFC1035 Destrpy* functions have been altered to atomically ensure that pointers are set to NULL after the memory they reference is free'd. Members: src/dns_internal.cc:1.15.6.27->1.15.6.28 Index: squid3/src/dns_internal.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/dns_internal.cc,v retrieving revision 1.15.6.27 retrieving revision 1.15.6.28 diff -u -r1.15.6.27 -r1.15.6.28 --- squid3/src/dns_internal.cc 24 Jun 2007 11:51:27 -0000 1.15.6.27 +++ squid3/src/dns_internal.cc 29 Jun 2007 15:43:22 -0000 1.15.6.28 @@ -1,6 +1,6 @@ /* - * $Id: dns_internal.cc,v 1.15.6.27 2007/06/24 11:51:27 amosjeffries Exp $ + * $Id: dns_internal.cc,v 1.15.6.28 2007/06/29 15:43:22 amosjeffries Exp $ * * DEBUG: section 78 DNS lookups; interacts with lib/rfc1035.c * AUTHOR: Duane Wessels @@ -885,7 +885,7 @@ void idnsDropMessage(rfc1035_message *message, idns_query *q) { - rfc1035MessageDestroy(message); + rfc1035MessageDestroy(&message); if (q->hash.key) { hash_remove_link(idns_lookup_hash, &q->hash); q->hash.key = NULL; @@ -912,19 +912,19 @@ if (q == NULL) { debugs(78, 3, "idnsGrokReply: Late response"); - rfc1035MessageDestroy(message); + rfc1035MessageDestroy(&message); return; } if (rfc1035QueryCompare(&q->query, message->query) != 0) { debugs(78, 3, "idnsGrokReply: Query mismatch (" << q->query.name << " != " << message->query->name << ")"); - rfc1035MessageDestroy(message); + rfc1035MessageDestroy(&message); return; } if (message->tc) { dlinkDelete(&q->lru, &lru_list); - rfc1035MessageDestroy(message); + rfc1035MessageDestroy(&message); if (!q->need_vc) { q->need_vc = 1; @@ -952,7 +952,7 @@ * the name server." */ debugs(78, 3, "idnsGrokReply: Query result: SERV_FAIL"); - rfc1035MessageDestroy(message); + rfc1035MessageDestroy(&message); q->start_t = current_time; q->id = idnsQueryID(); rfc1035SetQueryID(q->buf, q->id); @@ -1020,7 +1020,7 @@ #endif idnsCallback(q, message->answer, n, q->error); - rfc1035MessageDestroy(message); + rfc1035MessageDestroy(&message); cbdataFree(q); }