diff --git a/lib/dns/zone.c b/lib/dns/zone.c index c94bcc5398..790401f91b 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -18985,6 +18985,8 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { unsigned char algorithms[256]; unsigned int i; + enum { notexpected = 0, expected = 1, found = 2 }; + REQUIRE(DNS_ZONE_VALID(zone)); result = dns_db_getoriginnode(db, &node); @@ -19036,7 +19038,7 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { */ if (dns_rdataset_isassociated(&cds)) { bool delete = false; - memset(algorithms, 0, sizeof(algorithms)); + memset(algorithms, notexpected, sizeof(algorithms)); for (result = dns_rdataset_first(&cds); result == ISC_R_SUCCESS; result = dns_rdataset_next(&cds)) { @@ -19056,7 +19058,7 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { } CHECK(dns_rdata_tostruct(&crdata, &structcds, NULL)); if (algorithms[structcds.algorithm] == 0) { - algorithms[structcds.algorithm] = 1; + algorithms[structcds.algorithm] = expected; } for (result = dns_rdataset_first(&dnskey); result == ISC_R_SUCCESS; @@ -19072,7 +19074,7 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { memcmp(crdata.data, dsrdata.data, dsrdata.length) == 0) { - algorithms[structcds.algorithm] = 2; + algorithms[structcds.algorithm] = found; } } if (result != ISC_R_NOMORE) { @@ -19081,11 +19083,11 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { } for (i = 0; i < sizeof(algorithms); i++) { if (delete) { - if (algorithms[i] != 0) { + if (algorithms[i] != notexpected) { result = DNS_R_BADCDS; goto failure; } - } else if (algorithms[i] == 1) { + } else if (algorithms[i] == expected) { result = DNS_R_BADCDS; goto failure; } @@ -19099,7 +19101,7 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { */ if (dns_rdataset_isassociated(&cdnskey)) { bool delete = false; - memset(algorithms, 0, sizeof(algorithms)); + memset(algorithms, notexpected, sizeof(algorithms)); for (result = dns_rdataset_first(&cdnskey); result == ISC_R_SUCCESS; result = dns_rdataset_next(&cdnskey)) { @@ -19113,7 +19115,7 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { * and 2 zero octets. */ if (crdata.length == 5U && - memcmp(crdata.data, "\0\0\003\0", 5) == 0) + memcmp(crdata.data, "\0\0\3\0", 5) == 0) { delete = true; continue; @@ -19121,7 +19123,7 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { CHECK(dns_rdata_tostruct(&crdata, &structcdnskey, NULL)); if (algorithms[structcdnskey.algorithm] == 0) { - algorithms[structcdnskey.algorithm] = 1; + algorithms[structcdnskey.algorithm] = expected; } for (result = dns_rdataset_first(&dnskey); result == ISC_R_SUCCESS; @@ -19133,7 +19135,8 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { memcmp(crdata.data, rdata.data, rdata.length) == 0) { - algorithms[structcdnskey.algorithm] = 2; + algorithms[structcdnskey.algorithm] = + found; } } if (result != ISC_R_NOMORE) { @@ -19142,11 +19145,11 @@ dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { } for (i = 0; i < sizeof(algorithms); i++) { if (delete) { - if (algorithms[i] != 0) { + if (algorithms[i] != notexpected) { result = DNS_R_BADCDNSKEY; goto failure; } - } else if (algorithms[i] == 1) { + } else if (algorithms[i] == expected) { result = DNS_R_BADCDNSKEY; goto failure; }