mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Release all resources when shutting down an RPZ zone during an update
If an RPZ zone is to be freed during an update, canceling the update_quantum() event is not enough because the resources released when an update completes also need to be accounted for. Failure to do this results in a hang upon shutdown. Fix by copying cleanup code from the end of update_quantum() to rpz_detach().
This commit is contained in:
parent
faf2c7711a
commit
139bc2c6ab
1 changed files with 8 additions and 0 deletions
|
|
@ -2112,6 +2112,14 @@ rpz_detach(dns_rpz_zone_t **rpzp, dns_rpz_zones_t *rpzs) {
|
|||
}
|
||||
if (rpz->updaterunning) {
|
||||
isc_task_purgeevent(rpz->rpzs->updater, &rpz->updateevent);
|
||||
if (rpz->updbit != NULL) {
|
||||
dns_dbiterator_destroy(&rpz->updbit);
|
||||
}
|
||||
if (rpz->newnodes != NULL) {
|
||||
isc_ht_destroy(&rpz->newnodes);
|
||||
}
|
||||
dns_db_closeversion(rpz->updb, &rpz->updbversion, false);
|
||||
dns_db_detach(&rpz->updb);
|
||||
}
|
||||
|
||||
isc_timer_reset(rpz->updatetimer, isc_timertype_inactive,
|
||||
|
|
|
|||
Loading…
Reference in a new issue