2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00

pull up windows acl leak fix from 9.5.0-P2-W1

This commit is contained in:
Evan Hunt
2008-09-10 21:52:49 +00:00
parent 39548f001a
commit aeadcd6319
3 changed files with 13 additions and 4 deletions

View File

@@ -1,3 +1,5 @@
2435. [bug] Fixed an ACL memory leak affecting win32.
2434. [placeholder]
2433. [tuning] Set initial timeout to 800ms.

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: acl.c,v 1.45 2008/04/29 01:01:42 each Exp $ */
/* $Id: acl.c,v 1.46 2008/09/10 21:52:49 each Exp $ */
/*! \file */
@@ -234,8 +234,10 @@ dns_acl_match(const isc_netaddr_t *reqaddr,
dns_aclelement_t *e = &acl->elements[i];
/* Already found a better match? */
if (match_num != -1 && match_num < e->node_num)
if (match_num != -1 && match_num < e->node_num) {
isc_refcount_destroy(&pfx.refcount);
return (ISC_R_SUCCESS);
}
if (dns_aclelement_match(reqaddr, reqsigner,
e, env, matchelt)) {
@@ -245,10 +247,12 @@ dns_acl_match(const isc_netaddr_t *reqaddr,
else
*match = e->node_num;
}
isc_refcount_destroy(&pfx.refcount);
return (ISC_R_SUCCESS);
}
}
isc_refcount_destroy(&pfx.refcount);
return (ISC_R_SUCCESS);
}

View File

@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: iptable.c,v 1.10 2008/08/27 04:44:18 marka Exp $ */
/* $Id: iptable.c,v 1.11 2008/09/10 21:52:49 each Exp $ */
#include <isc/mem.h>
#include <isc/radix.h>
@@ -75,8 +75,10 @@ dns_iptable_addprefix(dns_iptable_t *tab, isc_netaddr_t *addr,
result = isc_radix_insert(tab->radix, &node, NULL, &pfx);
if (result != ISC_R_SUCCESS)
if (result != ISC_R_SUCCESS) {
isc_refcount_destroy(&pfx.refcount);
return(result);
}
/* If the node already contains data, don't overwrite it */
if (node->data[ISC_IS6(family)] == NULL) {
@@ -86,6 +88,7 @@ dns_iptable_addprefix(dns_iptable_t *tab, isc_netaddr_t *addr,
node->data[ISC_IS6(family)] = &dns_iptable_neg;
}
isc_refcount_destroy(&pfx.refcount);
return (ISC_R_SUCCESS);
}