Fix allocation for "none" ACL that caused assertion failure (#41745)

(cherry picked from commit 293a9e9978)
This commit is contained in:
Mukund Sivaraman 2016-02-23 12:51:34 +05:30
parent e7c31225e7
commit c685f0d741
3 changed files with 16 additions and 3 deletions

View file

@ -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
DNAME handling when parsing fetch reply messages.
(CVE-2016-1286) [RT #41753]

View file

@ -0,0 +1,8 @@
acl a {
{ "none"; };
{ !19.0.0.0/0; };
};
options {
allow-query { a; };
};

View file

@ -273,10 +273,11 @@ count_acl_elements(const cfg_obj_t *caml, const cfg_obj_t *cctx,
} else if (cfg_obj_isstring(ce)) {
const char *name = cfg_obj_asstring(ce);
if (strcasecmp(name, "localhost") == 0 ||
strcasecmp(name, "localnets") == 0) {
strcasecmp(name, "localnets") == 0 ||
strcasecmp(name, "none") == 0)
{
n++;
} else if (strcasecmp(name, "any") != 0 &&
strcasecmp(name, "none") != 0) {
} else if (strcasecmp(name, "any") != 0) {
dns_acl_t *inneracl = NULL;
/*
* Convert any named acls we reference now if