]> 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:04:08 +0000 (09:04 +1100)
Checking for value != NULL is not sufficient to detect use after
free errors.

lib/dns/catz.c

index bd740b1685da18575e6c2edaa07dfd25eccc9b42..ec048dfd8f63516552be3d781f1e44da9f3c115a 100644 (file)
@@ -791,7 +791,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));
 
@@ -1006,7 +1006,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;
@@ -1833,7 +1833,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,
@@ -1931,7 +1931,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);
 
        /*
@@ -2066,7 +2066,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);