From: Mark Andrews Date: Thu, 5 May 2016 11:59:09 +0000 (+1000) Subject: 4359. [bug] Inherited 'also-notify' lists were not being checked X-Git-Tag: v9.11.0a2~45 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=594d15df254304ef6705a9fc028bcd34328bce42;p=thirdparty%2Fbind9.git 4359. [bug] Inherited 'also-notify' lists were not being checked by named-checkconf. [RT #42174] --- diff --git a/CHANGES b/CHANGES index 1eb602f54ab..7344adf3603 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4359. [bug] Inherited 'also-notify' lists were not being checked + by named-checkconf. [RT #42174] + 4358. [test] Added American Fuzzy Lop harness that allows feeding fuzzed packets into BIND. [RT #41723] diff --git a/bin/tests/system/checkconf/bad-options-also-notify.conf b/bin/tests/system/checkconf/bad-options-also-notify.conf new file mode 100644 index 00000000000..936b6835c0e --- /dev/null +++ b/bin/tests/system/checkconf/bad-options-also-notify.conf @@ -0,0 +1,8 @@ +options { + also-notify { missing; }; +}; + +zone "example.net" { + type slave; + masters { 192.168.1.1; }; +}; diff --git a/bin/tests/system/checkconf/bad-view-also-notify.conf b/bin/tests/system/checkconf/bad-view-also-notify.conf new file mode 100644 index 00000000000..8e12d217c10 --- /dev/null +++ b/bin/tests/system/checkconf/bad-view-also-notify.conf @@ -0,0 +1,7 @@ +view example { + also-notify { missing; }; + zone "example.net" { + type slave; + masters { 192.168.1.1; }; + }; +}; diff --git a/bin/tests/system/checkconf/good-options-also-notify.conf b/bin/tests/system/checkconf/good-options-also-notify.conf new file mode 100644 index 00000000000..f676fb79707 --- /dev/null +++ b/bin/tests/system/checkconf/good-options-also-notify.conf @@ -0,0 +1,9 @@ +options { + also-notify { missing; }; +}; + +zone "example.net" { + type slave; + notify no; + masters { 192.168.1.1; }; +}; diff --git a/bin/tests/system/checkconf/good-view-also-notify.conf b/bin/tests/system/checkconf/good-view-also-notify.conf new file mode 100644 index 00000000000..46920964124 --- /dev/null +++ b/bin/tests/system/checkconf/good-view-also-notify.conf @@ -0,0 +1,8 @@ +view example { + also-notify { missing; }; + zone "example.net" { + type slave; + notify no; + masters { 192.168.1.1; }; + }; +}; diff --git a/lib/bind9/check.c b/lib/bind9/check.c index f978abd5444..8bf7120a420 100644 --- a/lib/bind9/check.c +++ b/lib/bind9/check.c @@ -1780,7 +1780,12 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, cfg_obj_log(zoptions, logctx, ISC_LOG_WARNING, "zone '%s': 'also-notify' set but " "'notify' is disabled", znamestr); - } else if (tresult == ISC_R_SUCCESS) { + } + if (tresult != ISC_R_SUCCESS && voptions != NULL) + tresult = cfg_map_get(voptions, "also-notify", &obj); + if (tresult != ISC_R_SUCCESS && goptions != NULL) + tresult = cfg_map_get(goptions, "also-notify", &obj); + if (tresult == ISC_R_SUCCESS && donotify) { isc_uint32_t count; tresult = validate_masters(obj, config, &count, logctx, mctx);