]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add missing DbC magic checks
authorMark Andrews <marka@isc.org>
Thu, 1 Dec 2022 01:51:30 +0000 (12:51 +1100)
committerMark Andrews <marka@isc.org>
Tue, 6 Dec 2022 22:47:39 +0000 (09:47 +1100)
Checking for value != NULL is not sufficient to detect use after
free errors.

(cherry picked from commit b1086a5561c8024fc39b5250063fc901c27eef06)

lib/dns/catz.c

index 332f9877360bbe8ca112fbf4f9973962267bf104..68927e84bbff7a9f01b550952a21789372331df1 100644 (file)
@@ -638,7 +638,7 @@ cleanup_ht:
 void
 dns_catz_catzs_set_view(dns_catz_zones_t *catzs, dns_view_t *view) {
        REQUIRE(DNS_CATZ_ZONES_VALID(catzs));
-       REQUIRE(view != NULL);
+       REQUIRE(DNS_VIEW_VALID(view));
        /* Either it's a new one or it's being reconfigured. */
        REQUIRE(catzs->view == NULL || !strcmp(catzs->view->name, view->name));
 
@@ -834,7 +834,7 @@ void
 dns_catz_catzs_detach(dns_catz_zones_t **catzsp) {
        dns_catz_zones_t *catzs;
 
-       REQUIRE(catzsp != NULL && *catzsp != NULL);
+       REQUIRE(catzsp != NULL && DNS_CATZ_ZONES_VALID(*catzsp));
 
        catzs = *catzsp;
        *catzsp = NULL;
@@ -1515,7 +1515,7 @@ dns_catz_generate_masterfilename(dns_catz_zone_t *zone, dns_catz_entry_t *entry,
        bool special = false;
 
        REQUIRE(DNS_CATZ_ZONE_VALID(zone));
-       REQUIRE(entry != NULL);
+       REQUIRE(DNS_CATZ_ENTRY_VALID(entry));
        REQUIRE(buffer != NULL && *buffer != NULL);
 
        isc_buffer_allocate(zone->catzs->mctx, &tbuf,
@@ -1613,7 +1613,7 @@ dns_catz_generate_zonecfg(dns_catz_zone_t *zone, dns_catz_entry_t *entry,
        char zname[DNS_NAME_FORMATSIZE];
 
        REQUIRE(DNS_CATZ_ZONE_VALID(zone));
-       REQUIRE(entry != NULL);
+       REQUIRE(DNS_CATZ_ENTRY_VALID(entry));
        REQUIRE(buf != NULL && *buf == NULL);
 
        /*
@@ -1745,7 +1745,7 @@ dns_catz_dbupdate_callback(dns_db_t *db, void *fn_arg) {
        isc_region_t r;
 
        REQUIRE(DNS_DB_VALID(db));
-       REQUIRE(fn_arg != NULL);
+       REQUIRE(DNS_CATZ_ZONES_VALID(fn_arg));
        catzs = (dns_catz_zones_t *)fn_arg;
 
        dns_name_toregion(&db->origin, &r);