]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pass the correct object to cfg_obj_log
authorMark Andrews <marka@isc.org>
Fri, 14 Dec 2018 05:29:02 +0000 (16:29 +1100)
committerMark Andrews <marka@isc.org>
Fri, 14 Dec 2018 05:29:02 +0000 (16:29 +1100)
CHANGES
bin/tests/system/checkconf/bad-stub-masters-dialup.conf [new file with mode: 0644]
lib/bind9/check.c

diff --git a/CHANGES b/CHANGES
index 23976a59188fb955ae1627bc5a570d38e80c808b..9e6f2b2982beff1d16d9928bc93fa3d298fe0f9f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+5112.  [bug]           Named/named-checkconf could dump core if there was
+                       a missing masters clause and a bad notify clause.
+                       [GL #779]
+
 5111.  [bug]           Occluded DNSKEY records could make it into the
                        delegating NSEC/NSEC3 bitmap. [GL #742]
 
diff --git a/bin/tests/system/checkconf/bad-stub-masters-dialup.conf b/bin/tests/system/checkconf/bad-stub-masters-dialup.conf
new file mode 100644 (file)
index 0000000..750daf8
--- /dev/null
@@ -0,0 +1,23 @@
+controls { /* empty */ };
+options {
+       query-source address 10.53.0.2;
+       notify-source 10.53.0.2;
+       transfer-source 10.53.0.2;
+       port 5300;
+       pid-file "named.pid";
+       listen-on { 10.53.0.2; };
+       listen-on-v6 { none; };
+       heartbeat-interval 2;
+       recursion no;
+};
+zone "." {
+       type hint;
+       file "hint";
+};
+zone "example." {
+       type stub;
+       dialup notify;
+       notify no;
+       file "example.bk";
+       // masters { 10.53.0.1; };
+};
index d03c33954cd619cf2b6dee7eee0e3a04171d26ac..226114322963ea6dcd8912daf4af97d38533b99d 100644 (file)
@@ -2434,10 +2434,10 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
        if (ztype == CFG_ZONE_MASTER || ztype == CFG_ZONE_SLAVE ||
            ztype == CFG_ZONE_STUB)
        {
-               const cfg_obj_t *dialup = NULL;
-               (void)cfg_map_get(zoptions, "dialup", &dialup);
-               if (dialup != NULL && cfg_obj_isstring(dialup)) {
-                       const char *str = cfg_obj_asstring(dialup);
+               obj = NULL;
+               (void)cfg_map_get(zoptions, "dialup", &obj);
+               if (obj != NULL && cfg_obj_isstring(obj)) {
+                       const char *str = cfg_obj_asstring(obj);
                        for (i = 0;
                             i < sizeof(dialups) / sizeof(dialups[0]);
                             i++)