2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +00:00

Merge branch '778-named-checkconf-crashes-in-name-c' into 'master'

Resolve "named-checkconf crashes in name.c"

Closes #778

See merge request isc-projects/bind9!1235
This commit is contained in:
Mark Andrews
2018-12-20 03:35:29 -05:00
3 changed files with 14 additions and 7 deletions

View File

@@ -1,3 +1,6 @@
5116. [bug] Named/named-checkconf triggered a assertion when
a mirror zone's name is bad. [GL #778]
5115. [bug] Allow unsupported algorithms in zone when not used for
signing with dnssec-signzone. [GL #783]

View File

@@ -0,0 +1,4 @@
zone "\0example" {
type mirror;
file "example.db";
};

View File

@@ -1958,7 +1958,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
unsigned int i;
dns_rdataclass_t zclass;
dns_fixedname_t fixedname;
dns_name_t *zname = NULL;
dns_name_t *zname = NULL; /* NULL if parsing of zone name fails. */
isc_buffer_t b;
bool root = false;
bool rfc1918 = false;
@@ -1977,10 +1977,10 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
};
static optionstable dialups[] = {
{ "notify", CFG_ZONE_MASTER | CFG_ZONE_SLAVE },
{ "notify-passive", CFG_ZONE_SLAVE },
{ "passive", CFG_ZONE_SLAVE | CFG_ZONE_STUB },
{ "refresh", CFG_ZONE_SLAVE | CFG_ZONE_STUB },
{ "notify", CFG_ZONE_MASTER | CFG_ZONE_SLAVE },
{ "notify-passive", CFG_ZONE_SLAVE },
{ "passive", CFG_ZONE_SLAVE | CFG_ZONE_STUB },
{ "refresh", CFG_ZONE_SLAVE | CFG_ZONE_STUB },
};
znamestr = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
@@ -2273,7 +2273,8 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
* server list is used in the absence of one explicitly specified.
*/
if (ztype == CFG_ZONE_SLAVE || ztype == CFG_ZONE_STUB ||
(ztype == CFG_ZONE_MIRROR && !dns_name_equal(zname, dns_rootname)))
(ztype == CFG_ZONE_MIRROR && zname != NULL &&
!dns_name_equal(zname, dns_rootname)))
{
obj = NULL;
if (cfg_map_get(zoptions, "masters", &obj) != ISC_R_SUCCESS) {
@@ -2567,7 +2568,6 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
}
}
/*
* Check that max-zone-ttl isn't used with masterfile-format map
*/