From: Mark Andrews Date: Tue, 13 Sep 2016 23:15:22 +0000 (+1000) Subject: 4468. [bug] Address ECS option handling issues. [RT #43191] X-Git-Tag: v9.10.4-P3~2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=1d57b201f933319a61ab2110f03021547c7b70a7;p=thirdparty%2Fbind9.git 4468. [bug] Address ECS option handling issues. [RT #43191] Note: Only the parts required to restore interoperation with ECS clients have been included in this security release. The full fix is included in BIND 9.10.5. --- diff --git a/CHANGES b/CHANGES index 2ce963d0757..dcf41531e40 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,12 @@ --- 9.10.4-P3 released --- +4468. [bug] Address ECS option handling issues. [RT #43191] + + Note: Only the parts required to restore + interoperation with ECS clients have been + included in this security release. The full + fix is included in BIND 9.10.5. + 4467. [security] It was possible to trigger a assertion when rendering a message. (CVE-2016-2776) [RT #43139] diff --git a/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c index ea0e8cd44c2..35b2526f74c 100644 --- a/lib/dns/rdata/generic/opt_41.c +++ b/lib/dns/rdata/generic/opt_41.c @@ -134,9 +134,6 @@ fromwire_opt(ARGS_FROMWIRE) { scope = uint8_fromregion(&sregion); isc_region_consume(&sregion, 1); - if (addrlen == 0U && family != 0U) - return (DNS_R_OPTERR); - switch (family) { case 0: /* diff --git a/lib/dns/tests/rdata_test.c b/lib/dns/tests/rdata_test.c index 2596d26dfde..65ecb0cc719 100644 --- a/lib/dns/tests/rdata_test.c +++ b/lib/dns/tests/rdata_test.c @@ -105,7 +105,7 @@ ATF_TC_BODY(edns_client_subnet, tc) { 0x00, 0x08, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00 }, - 8, ISC_FALSE + 8, ISC_TRUE }, { /* Option code family 2 (ipv6) , source 0, scope 0 */ @@ -113,7 +113,7 @@ ATF_TC_BODY(edns_client_subnet, tc) { 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00 }, - 8, ISC_FALSE + 8, ISC_TRUE }, { /* extra octet */