mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 07:35:26 +00:00
Fix allocation for "none" ACL that caused assertion failure (#41745)
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -1,3 +1,7 @@
|
|||||||
|
4320. [bug] Insufficient memory allocation when handling
|
||||||
|
"none" ACL could cause an assertion failure in
|
||||||
|
named when parsing ACL configuration. [RT #41745]
|
||||||
|
|
||||||
4319. [security] Fix resolver assertion failure due to improper
|
4319. [security] Fix resolver assertion failure due to improper
|
||||||
DNAME handling when parsing fetch reply messages.
|
DNAME handling when parsing fetch reply messages.
|
||||||
(CVE-2016-1286) [RT #41753]
|
(CVE-2016-1286) [RT #41753]
|
||||||
|
8
bin/tests/system/checkconf/good-acl.conf
Normal file
8
bin/tests/system/checkconf/good-acl.conf
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
acl a {
|
||||||
|
{ "none"; };
|
||||||
|
{ !19.0.0.0/0; };
|
||||||
|
};
|
||||||
|
|
||||||
|
options {
|
||||||
|
allow-query { a; };
|
||||||
|
};
|
@@ -273,10 +273,11 @@ count_acl_elements(const cfg_obj_t *caml, const cfg_obj_t *cctx,
|
|||||||
} else if (cfg_obj_isstring(ce)) {
|
} else if (cfg_obj_isstring(ce)) {
|
||||||
const char *name = cfg_obj_asstring(ce);
|
const char *name = cfg_obj_asstring(ce);
|
||||||
if (strcasecmp(name, "localhost") == 0 ||
|
if (strcasecmp(name, "localhost") == 0 ||
|
||||||
strcasecmp(name, "localnets") == 0) {
|
strcasecmp(name, "localnets") == 0 ||
|
||||||
|
strcasecmp(name, "none") == 0)
|
||||||
|
{
|
||||||
n++;
|
n++;
|
||||||
} else if (strcasecmp(name, "any") != 0 &&
|
} else if (strcasecmp(name, "any") != 0) {
|
||||||
strcasecmp(name, "none") != 0) {
|
|
||||||
dns_acl_t *inneracl = NULL;
|
dns_acl_t *inneracl = NULL;
|
||||||
/*
|
/*
|
||||||
* Convert any named acls we reference now if
|
* Convert any named acls we reference now if
|
||||||
|
Reference in New Issue
Block a user