mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
3023. [bug] Named could be left in an inconsistent state when
receiving multiple AXFR response messages that were not all TSIG-signed. [RT #23254]
This commit is contained in:
parent
fcdbc61d18
commit
1d5981dd3f
2 changed files with 18 additions and 1 deletions
4
CHANGES
4
CHANGES
|
|
@ -1,3 +1,7 @@
|
|||
3023. [bug] Named could be left in an inconsistent state when
|
||||
receiving multiple AXFR response messages that were
|
||||
not all TSIG-signed. [RT #23254]
|
||||
|
||||
3022. [bug] Fixed prz SERVFAILs after failed zone transfers
|
||||
[RT #23246]
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: xfrin.c,v 1.166 2008/09/25 04:12:39 marka Exp $ */
|
||||
/* $Id: xfrin.c,v 1.167 2011/02/18 21:22:12 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
|
@ -203,6 +203,7 @@ static isc_result_t axfr_putdata(dns_xfrin_ctx_t *xfr, dns_diffop_t op,
|
|||
dns_rdata_t *rdata);
|
||||
static isc_result_t axfr_apply(dns_xfrin_ctx_t *xfr);
|
||||
static isc_result_t axfr_commit(dns_xfrin_ctx_t *xfr);
|
||||
static isc_result_t axfr_finalize(dns_xfrin_ctx_t *xfr);
|
||||
|
||||
static isc_result_t ixfr_init(dns_xfrin_ctx_t *xfr);
|
||||
static isc_result_t ixfr_apply(dns_xfrin_ctx_t *xfr);
|
||||
|
|
@ -318,6 +319,16 @@ axfr_commit(dns_xfrin_ctx_t *xfr) {
|
|||
|
||||
CHECK(axfr_apply(xfr));
|
||||
CHECK(dns_db_endload(xfr->db, &xfr->axfr.add_private));
|
||||
|
||||
result = ISC_R_SUCCESS;
|
||||
failure:
|
||||
return (result);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
axfr_finalize(dns_xfrin_ctx_t *xfr) {
|
||||
isc_result_t result;
|
||||
|
||||
CHECK(dns_zone_replacedb(xfr->zone, xfr->db, ISC_TRUE));
|
||||
|
||||
result = ISC_R_SUCCESS;
|
||||
|
|
@ -1350,6 +1361,8 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) {
|
|||
xfr->state = XFRST_INITIALSOA;
|
||||
CHECK(xfrin_send_request(xfr));
|
||||
} else if (xfr->state == XFRST_END) {
|
||||
CHECK(axfr_finalize(xfr));
|
||||
|
||||
/*
|
||||
* Close the journal.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue