Merge branch '1905-check-wildcard-in-checkconf-z-v9_18' into 'v9_18'
Fix 'named-checkconf -z' was ignoring check-wildcard settings in named.conf [v9_18] See merge request isc-projects/bind9!7090
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
||||
6020. [bug] Ensure 'named-checkconf -z' respects the check-wildcard
|
||||
option when loading a zone. [GL #1905]
|
||||
|
||||
6017. [bug] The view's zone table was not locked when it should
|
||||
have been leading to race conditions when external
|
||||
extensions that manipulate the zone table where in
|
||||
|
||||
@@ -403,6 +403,17 @@ configure_zone(const char *vclass, const char *view, const cfg_obj_t *zconfig,
|
||||
zone_options |= DNS_ZONEOPT_CHECKSPF;
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
if (get_maps(maps, "check-wildcard", &obj)) {
|
||||
if (cfg_obj_asboolean(obj)) {
|
||||
zone_options |= DNS_ZONEOPT_CHECKWILDCARD;
|
||||
} else {
|
||||
zone_options &= ~DNS_ZONEOPT_CHECKWILDCARD;
|
||||
}
|
||||
} else {
|
||||
zone_options |= DNS_ZONEOPT_CHECKWILDCARD;
|
||||
}
|
||||
|
||||
obj = NULL;
|
||||
if (get_checknames(maps, &obj)) {
|
||||
if (strcasecmp(cfg_obj_asstring(obj), "warn") == 0) {
|
||||
|
||||
18
bin/tests/system/checkconf/check-wildcard-no.conf
Normal file
18
bin/tests/system/checkconf/check-wildcard-no.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
zone "check-wildcard" {
|
||||
type primary;
|
||||
file "check-wildcard.db";
|
||||
check-wildcard no;
|
||||
};
|
||||
18
bin/tests/system/checkconf/check-wildcard.conf
Normal file
18
bin/tests/system/checkconf/check-wildcard.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
zone "check-wildcard" {
|
||||
type primary;
|
||||
file "check-wildcard.db";
|
||||
check-wildcard yes;
|
||||
};
|
||||
23
bin/tests/system/checkconf/check-wildcard.db
Normal file
23
bin/tests/system/checkconf/check-wildcard.db
Normal file
@@ -0,0 +1,23 @@
|
||||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 600 ; 10 minutes
|
||||
@ IN SOA mname1. . (
|
||||
1 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns2
|
||||
ns2 A 10.53.0.2
|
||||
; an interior wildcard name
|
||||
foo.* TXT The owner name contains an interior wildcard
|
||||
@@ -624,6 +624,23 @@ $CHECKCONF warn-random-device.conf > checkconf.out$n 2>/dev/null || ret=1
|
||||
grep "option 'random-device' is obsolete and should be removed" < checkconf.out$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
n=`expr $n + 1`
|
||||
echo_i "check that 'check-wildcard no;' succeeds as configured ($n)"
|
||||
ret=0
|
||||
$CHECKCONF -z check-wildcard-no.conf > checkconf.out$n 2>&1 || ret=1
|
||||
grep -F "warning: ownername 'foo.*.check-wildcard' contains an non-terminal wildcard" checkconf.out$n > /dev/null && ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
n=`expr $n + 1`
|
||||
echo_i "check that 'check-wildcard yes;' warns as configured ($n)"
|
||||
ret=0
|
||||
$CHECKCONF -z check-wildcard.conf > checkconf.out$n 2>&1 || ret=1
|
||||
grep -F "warning: ownername 'foo.*.check-wildcard' contains an non-terminal wildcard" checkconf.out$n > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; ret=1; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
rmdir keys
|
||||
|
||||
echo_i "exit status: $status"
|
||||
|
||||
Reference in New Issue
Block a user