]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
catz: unregister the db update-notify callback before detaching from db
authorAram Sargsyan <aram@isc.org>
Fri, 27 Jan 2023 08:47:52 +0000 (08:47 +0000)
committerArаm Sаrgsyаn <aram@isc.org>
Tue, 28 Feb 2023 13:47:18 +0000 (13:47 +0000)
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 cf79692a662b627d2230fbf7ae67f55cf729180c)

lib/dns/catz.c

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