Backing out changes that should have been held for 9.3.6

This commit is contained in:
Evan Hunt
2008-04-03 00:17:08 +00:00
parent 8a01e8aa04
commit 634ba650ab
4 changed files with 20 additions and 22 deletions

View File

@@ -1,9 +1,3 @@
2347. [bug] Delete now traverses the RB tree in the canonical
order. [RT #17451]
2343. [bug] (Seemingly) duplicate IPv6 entries could be
created in ADB. [RT #17837]
--- 9.3.5rc2 released ---
2338. [bug] check_ds() could be called with a non DS rdataset.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: adb.c,v 1.181.2.11.2.32 2008/03/20 23:45:32 tbox Exp $ */
/* $Id: adb.c,v 1.181.2.11.2.33 2008/04/03 00:17:07 each Exp $ */
/*
* Implementation notes
@@ -488,7 +488,6 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
isc_boolean_t new_addresses_added;
dns_rdatatype_t rdtype;
unsigned int findoptions;
dns_adbnamehooklist_t *hookhead;
INSIST(DNS_ADBNAME_VALID(adbname));
adb = adbname->adb;
@@ -513,12 +512,10 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
INSIST(rdata.length == 4);
memcpy(&ina.s_addr, rdata.data, 4);
isc_sockaddr_fromin(&sockaddr, &ina, 0);
hookhead = &adbname->v4;
} else {
INSIST(rdata.length == 16);
memcpy(in6a.s6_addr, rdata.data, 16);
isc_sockaddr_fromin6(&sockaddr, &in6a, 0);
hookhead = &adbname->v6;
}
INSIST(nh == NULL);
@@ -547,7 +544,7 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
link_entry(adb, addr_bucket, entry);
} else {
for (anh = ISC_LIST_HEAD(*hookhead);
for (anh = ISC_LIST_HEAD(adbname->v4);
anh != NULL;
anh = ISC_LIST_NEXT(anh, plink))
if (anh->entry == foundentry)
@@ -560,8 +557,12 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
}
new_addresses_added = ISC_TRUE;
if (nh != NULL)
ISC_LIST_APPEND(*hookhead, nh, plink);
if (nh != NULL) {
if (rdtype == dns_rdatatype_a)
ISC_LIST_APPEND(adbname->v4, nh, plink);
else
ISC_LIST_APPEND(adbname->v6, nh, plink);
}
nh = NULL;
result = dns_rdataset_next(rdataset);
}

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: rbt.c,v 1.115.2.2.2.16 2008/03/31 13:37:44 fdupont Exp $ */
/* $Id: rbt.c,v 1.115.2.2.2.17 2008/04/03 00:17:07 each Exp $ */
/* Principal Authors: DCL */
@@ -2048,6 +2048,10 @@ dns_rbt_deletetreeflat(dns_rbt_t *rbt, unsigned int quantum,
node = LEFT(node);
goto traverse;
}
if (RIGHT(node) != NULL) {
node = RIGHT(node);
goto traverse;
}
if (DOWN(node) != NULL) {
node = DOWN(node);
goto traverse;
@@ -2064,15 +2068,14 @@ dns_rbt_deletetreeflat(dns_rbt_t *rbt, unsigned int quantum,
node->magic = 0;
#endif
parent = PARENT(node);
if (RIGHT(node) != NULL)
PARENT(RIGHT(node)) = parent;
if (parent != NULL) {
if (LEFT(parent) == node)
LEFT(parent) = RIGHT(node);
LEFT(parent) = NULL;
else if (DOWN(parent) == node)
DOWN(parent) = RIGHT(node);
} else
parent = RIGHT(node);
DOWN(parent) = NULL;
else if (RIGHT(parent) == node)
RIGHT(parent) = NULL;
}
isc_mem_put(rbt->mctx, node, NODE_SIZE(node));
rbt->nodecount--;
node = parent;

View File

@@ -1648,7 +1648,7 @@
./lib/dns/.cvsignore X 1998,1999,2000,2001
./lib/dns/Makefile.in MAKE 1998,1999,2000,2001,2002,2003,2004,2006
./lib/dns/acl.c C 1999,2000,2001,2002,2003,2004,2006,2007
./lib/dns/adb.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008
./lib/dns/adb.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007
./lib/dns/api X 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008
./lib/dns/byaddr.c C 2000,2001,2002,2003,2004
./lib/dns/cache.c C 1999,2000,2001,2002,2003,2004,2005,2006