mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-10 11:39:41 -04:00
pullup:
1195. [bug] Attempts to redefine builtin acls should be caught.
[RT #2403]
This commit is contained in:
parent
60c0e2944d
commit
65ae185312
2 changed files with 34 additions and 1 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,5 +1,8 @@
|
|||
1196. [contrib] update mdnkit to 2.2.3.
|
||||
|
||||
1195. [bug] Attempts to redefine builtin acls should be caught.
|
||||
[RT #2403]
|
||||
|
||||
1191. [bug] A dynamic update removing the last non-apex name in
|
||||
a secure zone would fail. [RT #2399]
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check.c,v 1.14.2.9 2002/02/08 03:57:46 marka Exp $ */
|
||||
/* $Id: check.c,v 1.14.2.10 2002/02/11 21:42:10 gson Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
|
@ -449,11 +449,15 @@ isc_result_t
|
|||
cfg_check_namedconf(cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx) {
|
||||
cfg_obj_t *options = NULL;
|
||||
cfg_obj_t *views = NULL;
|
||||
cfg_obj_t *acls = NULL;
|
||||
cfg_obj_t *obj;
|
||||
cfg_listelt_t *velement;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
isc_result_t tresult;
|
||||
|
||||
static const char *builtin[] = { "localhost", "localnets",
|
||||
"any", "none" };
|
||||
|
||||
(void)cfg_map_get(config, "options", &options);
|
||||
|
||||
if (options != NULL &&
|
||||
|
|
@ -501,5 +505,31 @@ cfg_check_namedconf(cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx) {
|
|||
}
|
||||
}
|
||||
|
||||
tresult = cfg_map_get(config, "acl", &acls);
|
||||
if (tresult == ISC_R_SUCCESS) {
|
||||
cfg_listelt_t *elt;
|
||||
const char *aclname;
|
||||
|
||||
for (elt = cfg_list_first(acls);
|
||||
elt != NULL;
|
||||
elt = cfg_list_next(elt)) {
|
||||
cfg_obj_t *acl = cfg_listelt_value(elt);
|
||||
unsigned int i;
|
||||
|
||||
aclname = cfg_obj_asstring(cfg_tuple_get(acl, "name"));
|
||||
for (i = 0;
|
||||
i < sizeof(builtin) / sizeof(builtin[0]);
|
||||
i++)
|
||||
if (strcasecmp(aclname, builtin[i]) == 0) {
|
||||
cfg_obj_log(acl, logctx, ISC_LOG_ERROR,
|
||||
"attempt to redefine "
|
||||
"builtin acl '%s'",
|
||||
aclname);
|
||||
result = ISC_R_FAILURE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue