mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 07:35:26 +00:00
1742. [bug] Deleting all records at a node then adding a
previously existing record, in a single UPDATE transaction, failed to leave / regenerate the associated RRSIG records. [RT #12788]
This commit is contained in:
9
CHANGES
9
CHANGES
@@ -18,13 +18,16 @@
|
|||||||
1744. [bug] If tuple2msgname() failed to convert a tuple to
|
1744. [bug] If tuple2msgname() failed to convert a tuple to
|
||||||
a name a REQUIRE could be triggered. [RT #12796]
|
a name a REQUIRE could be triggered. [RT #12796]
|
||||||
|
|
||||||
1743. [placeholder] rt12790
|
1743. [bug] If isc_taskmgr_create() was not able to create the
|
||||||
|
|
||||||
1742. [bug] If isc_taskmgr_create() was not able to create the
|
|
||||||
requested number of worker threads then destruction
|
requested number of worker threads then destruction
|
||||||
of the manager would trigger an INSIST() failure.
|
of the manager would trigger an INSIST() failure.
|
||||||
[RT #12790]
|
[RT #12790]
|
||||||
|
|
||||||
|
1742. [bug] Deleting all records at a node then adding a
|
||||||
|
previously existing record, in a single UPDATE
|
||||||
|
transaction, failed to leave / regenerate the
|
||||||
|
associated RRSIG records. [RT #12788]
|
||||||
|
|
||||||
1741. [bug] Deleting all records at a node in a secure zone
|
1741. [bug] Deleting all records at a node in a secure zone
|
||||||
using a update-policy grant failed. [RT #12787]
|
using a update-policy grant failed. [RT #12787]
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: update.c,v 1.117 2004/10/12 21:57:57 marka Exp $ */
|
/* $Id: update.c,v 1.118 2004/10/21 01:29:29 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -965,13 +965,27 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return true iff 'update_rr' is neither a SOA nor an NS RR.
|
* Return true iff 'db_rr' is neither a SOA nor an NS RR nor
|
||||||
|
* an RRSIG nor a NSEC.
|
||||||
*/
|
*/
|
||||||
static isc_boolean_t
|
static isc_boolean_t
|
||||||
type_not_soa_nor_ns_p(dns_rdata_t *update_rr, dns_rdata_t *db_rr) {
|
type_not_soa_nor_ns_p(dns_rdata_t *update_rr, dns_rdata_t *db_rr) {
|
||||||
UNUSED(update_rr);
|
UNUSED(update_rr);
|
||||||
return ((db_rr->type != dns_rdatatype_soa &&
|
return ((db_rr->type != dns_rdatatype_soa &&
|
||||||
db_rr->type != dns_rdatatype_ns) ?
|
db_rr->type != dns_rdatatype_ns &&
|
||||||
|
db_rr->type != dns_rdatatype_rrsig &&
|
||||||
|
db_rr->type != dns_rdatatype_nsec) ?
|
||||||
|
ISC_TRUE : ISC_FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return true iff 'db_rr' is neither a RRSIG nor a NSEC.
|
||||||
|
*/
|
||||||
|
static isc_boolean_t
|
||||||
|
type_not_dnssec(dns_rdata_t *update_rr, dns_rdata_t *db_rr) {
|
||||||
|
UNUSED(update_rr);
|
||||||
|
return ((db_rr->type != dns_rdatatype_rrsig &&
|
||||||
|
db_rr->type != dns_rdatatype_nsec) ?
|
||||||
ISC_TRUE : ISC_FALSE);
|
ISC_TRUE : ISC_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2514,7 +2528,8 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
|||||||
dns_rdatatype_any, 0,
|
dns_rdatatype_any, 0,
|
||||||
&rdata, &diff));
|
&rdata, &diff));
|
||||||
} else {
|
} else {
|
||||||
CHECK(delete_if(true_p, db, ver, name,
|
CHECK(delete_if(type_not_dnssec,
|
||||||
|
db, ver, name,
|
||||||
dns_rdatatype_any, 0,
|
dns_rdatatype_any, 0,
|
||||||
&rdata, &diff));
|
&rdata, &diff));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user