mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 22:45:39 +00:00
error on allow-update and allow-update-forwarding at options/view level
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
*
|
||||||
|
* 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 http://mozilla.org/MPL/2.0/.
|
||||||
|
*
|
||||||
|
* See the COPYRIGHT file distributed with this work for additional
|
||||||
|
* information regarding copyright ownership.
|
||||||
|
*/
|
||||||
|
|
||||||
|
view {
|
||||||
|
allow-update-forwarding { any; };
|
||||||
|
};
|
14
bin/tests/system/checkconf/bad-allow-update-forwarding.conf
Normal file
14
bin/tests/system/checkconf/bad-allow-update-forwarding.conf
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
*
|
||||||
|
* 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 http://mozilla.org/MPL/2.0/.
|
||||||
|
*
|
||||||
|
* See the COPYRIGHT file distributed with this work for additional
|
||||||
|
* information regarding copyright ownership.
|
||||||
|
*/
|
||||||
|
|
||||||
|
options {
|
||||||
|
allow-update-forwarding { any; };
|
||||||
|
};
|
14
bin/tests/system/checkconf/bad-allow-update-view.conf
Normal file
14
bin/tests/system/checkconf/bad-allow-update-view.conf
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
*
|
||||||
|
* 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 http://mozilla.org/MPL/2.0/.
|
||||||
|
*
|
||||||
|
* See the COPYRIGHT file distributed with this work for additional
|
||||||
|
* information regarding copyright ownership.
|
||||||
|
*/
|
||||||
|
|
||||||
|
view {
|
||||||
|
allow-update { any; };
|
||||||
|
};
|
14
bin/tests/system/checkconf/bad-allow-update.conf
Normal file
14
bin/tests/system/checkconf/bad-allow-update.conf
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
*
|
||||||
|
* 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 http://mozilla.org/MPL/2.0/.
|
||||||
|
*
|
||||||
|
* See the COPYRIGHT file distributed with this work for additional
|
||||||
|
* information regarding copyright ownership.
|
||||||
|
*/
|
||||||
|
|
||||||
|
options {
|
||||||
|
allow-update { any; };
|
||||||
|
};
|
@@ -133,6 +133,9 @@ view "third" {
|
|||||||
zone "dnssec" {
|
zone "dnssec" {
|
||||||
type master;
|
type master;
|
||||||
file "file";
|
file "file";
|
||||||
|
allow-update {
|
||||||
|
"any";
|
||||||
|
};
|
||||||
auto-dnssec maintain;
|
auto-dnssec maintain;
|
||||||
};
|
};
|
||||||
zone "p" {
|
zone "p" {
|
||||||
@@ -145,9 +148,6 @@ view "third" {
|
|||||||
1.2.3.4;
|
1.2.3.4;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
allow-update {
|
|
||||||
"any";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
view "chaos" chaos {
|
view "chaos" chaos {
|
||||||
zone "hostname.bind" chaos {
|
zone "hostname.bind" chaos {
|
||||||
|
@@ -484,6 +484,43 @@ check_viewacls(cfg_aclconfctx_t *actx, const cfg_obj_t *voptions,
|
|||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isc_result_t
|
||||||
|
check_non_viewacls(const cfg_obj_t *voptions, const cfg_obj_t *config,
|
||||||
|
isc_log_t *logctx)
|
||||||
|
{
|
||||||
|
const cfg_obj_t *aclobj = NULL;
|
||||||
|
const cfg_obj_t *options;
|
||||||
|
const char *where = NULL;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
static const char *acls[] = {
|
||||||
|
"allow-update", "allow-update-forwarding", NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
for (i = 0; acls[i] != NULL; i++) {
|
||||||
|
if (voptions != NULL && aclobj == NULL) {
|
||||||
|
cfg_map_get(voptions, acls[i], &aclobj);
|
||||||
|
where = "view";
|
||||||
|
}
|
||||||
|
if (config != NULL && aclobj == NULL) {
|
||||||
|
options = NULL;
|
||||||
|
cfg_map_get(config, "options", &options);
|
||||||
|
if (options != NULL) {
|
||||||
|
cfg_map_get(options, acls[i], &aclobj);
|
||||||
|
where = "options";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (aclobj != NULL) {
|
||||||
|
cfg_obj_log(aclobj, logctx, ISC_LOG_ERROR,
|
||||||
|
"'%s' can only be set per-zone, "
|
||||||
|
"not in '%s'", acls[i], where);
|
||||||
|
return (ISC_R_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (ISC_R_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
static const unsigned char zeros[16];
|
static const unsigned char zeros[16];
|
||||||
|
|
||||||
static isc_result_t
|
static isc_result_t
|
||||||
@@ -3692,6 +3729,11 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
|
|||||||
if (tresult != ISC_R_SUCCESS)
|
if (tresult != ISC_R_SUCCESS)
|
||||||
result = tresult;
|
result = tresult;
|
||||||
|
|
||||||
|
tresult = check_non_viewacls(voptions, config, logctx);
|
||||||
|
if (tresult != ISC_R_SUCCESS) {
|
||||||
|
result = tresult;
|
||||||
|
}
|
||||||
|
|
||||||
tresult = check_recursionacls(actx, voptions, viewname,
|
tresult = check_recursionacls(actx, voptions, viewname,
|
||||||
config, logctx, mctx);
|
config, logctx, mctx);
|
||||||
if (tresult != ISC_R_SUCCESS)
|
if (tresult != ISC_R_SUCCESS)
|
||||||
|
Reference in New Issue
Block a user