catz: unregister the db update-notify callback before detaching from db

When detaching from the previous version of the database, make sure
that the update-notify callback is unregistered, otherwise there is
an INSIST check which can generate an assertion failure in free_rbtdb(),
which checks that there are no outstanding update listeners in the list.

There is a similar code already in place for RPZ.

(cherry picked from commit cf79692a66)
This commit is contained in:
Aram Sargsyan 2023-01-27 08:47:52 +00:00
parent 79ee7353ad
commit fff49a2ffb

View file

@ -1763,6 +1763,8 @@ dns_catz_dbupdate_callback(dns_db_t *db, void *fn_arg) {
if (zone->dbversion != NULL) {
dns_db_closeversion(zone->db, &zone->dbversion, false);
}
dns_db_updatenotify_unregister(
zone->db, dns_catz_dbupdate_callback, zone->catzs);
dns_db_detach(&zone->db);
/*
* We're not registering db update callback, it will be