Package: bind9
Version: 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
Severity: important
Tags: patch
Hello,
current bind9 from debian stable rejects responses with duplicate singleton
records.
The problem can be reproduced by querying cid-4711.calendar.live.com, bind is
unable to resolve the A record, as the response is discarded and a FORMERR is
logged.
Therefore the calendar of live.com is not usable when using bind.
I contacted upstream about the issue and was given the advice to update my bind.
Further investigation showed the problem was fixed in 9.9.3b1.
https://kb.isc.org/category/81/20/10/Software-Products/BIND9/Release-Notes/
"Instead of rejecting and logging a FORMERR, named now accepts duplicate
singleton records in a DNS query response. (In some situations, query
responses may contain duplicates - and whilst this is not technically correct,
BIND has been updated to be more tolerant). [RT #32329]"
I 'backported' the patch by cutting it from the diff of 9.9.2-P2 to 9.9.3b1.
The resulting bind9 package works fine.
I propose to accept the backported patch to be able to use bind when using
live.com (or other) services which respond with duplicate singleton responses.
-- System Information:
Debian Release: 7.1
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-042stab072.10 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages bind9 depends on:
ii adduser 3.113+nmu3
ii bind9utils 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii debconf [debconf-2.0] 1.5.49
ii libbind9-80 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii libc6 2.13-38
ii libcap2 1:2.22-1.2
ii libdns88 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii libgssapi-krb5-2 1.10.1+dfsg-5+deb7u1
ii libisc84 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii libisccc80 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii libisccfg82 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii liblwres80 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii libssl1.0.0 1.0.1e-2
ii libxml2 2.8.0+dfsg1-7+nmu1
ii lsb-base 4.1+Debian8+deb7u1
ii net-tools 1.60-24.2
ii netbase 5.0
bind9 recommends no packages.
Versions of packages bind9 suggests:
ii bind9-doc 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
ii dnsutils 1:9.8.4.dfsg.P1-6+nmu2+deb7u1
pn resolvconf <none>
pn ufw <none>
-- Configuration Files:
/etc/bind/named.conf.local changed [not included]
-- debconf information excluded
diff -Naur bind9-9.8.4.dfsg.P1/debian/patches/accept_duplicate_singleton_records.patch ../bind9-9.8.4.dfsg.P1/debian/patches/accept_duplicate_singleton_records.patch
--- bind9-9.8.4.dfsg.P1/debian/patches/accept_duplicate_singleton_records.patch 1970-01-01 01:00:00.000000000 +0100
+++ ../bind9-9.8.4.dfsg.P1/debian/patches/accept_duplicate_singleton_records.patch 2013-09-12 16:28:51.000000000 +0200
@@ -0,0 +1,22 @@
+Index: bind9-9.8.4.dfsg.P1/lib/dns/message.c
+===================================================================
+--- bind9-9.8.4.dfsg.P1.orig/lib/dns/message.c 2013-09-12 16:06:38.000000000 +0200
++++ bind9-9.8.4.dfsg.P1/lib/dns/message.c 2013-09-12 16:06:52.000000000 +0200
+@@ -1441,8 +1441,15 @@
+ * the opcode is an update, or the type search is skipped.
+ */
+ if (result == ISC_R_SUCCESS) {
+- if (dns_rdatatype_issingleton(rdtype))
+- DO_FORMERR;
++ if (dns_rdatatype_issingleton(rdtype)) {
++ dns_rdata_t *first;
++ dns_rdatalist_fromrdataset(rdataset,
++ &rdatalist);
++ first = ISC_LIST_HEAD(rdatalist->rdata);
++ INSIST(first != NULL);
++ if (dns_rdata_compare(rdata, first) != 0)
++ DO_FORMERR;
++ }
+ }
+
+ if (result == ISC_R_NOTFOUND) {
diff -Naur bind9-9.8.4.dfsg.P1/debian/patches/series ../bind9-9.8.4.dfsg.P1/debian/patches/series
--- bind9-9.8.4.dfsg.P1/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ ../bind9-9.8.4.dfsg.P1/debian/patches/series 2013-09-12 16:28:51.000000000 +0200
@@ -0,0 +1 @@
+accept_duplicate_singleton_records.patch