From 2aaf3765974c9f340c0c3d705e9f0609073cf83c Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Fri, 19 Feb 2021 15:29:02 +0300 Subject: [PATCH] resolved: don't discard mDNS queries with bad flags Even though RFC 6762 specifies these bits MUST be zero, it also says they MUST be ignored on reception. --- src/resolve/resolved-dns-packet.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index a51514a8de..9778f5ee6b 100644 --- a/src/resolve/resolved-dns-packet.c +++ b/src/resolve/resolved-dns-packet.c @@ -326,13 +326,10 @@ int dns_packet_validate_query(DnsPacket *p) { break; case DNS_PROTOCOL_MDNS: - /* RFC 6762, Section 18 */ - if (DNS_PACKET_AA(p) != 0 || - DNS_PACKET_RD(p) != 0 || - DNS_PACKET_RA(p) != 0 || - DNS_PACKET_AD(p) != 0 || - DNS_PACKET_CD(p) != 0 || - DNS_PACKET_RCODE(p) != 0) + /* RFC 6762, Section 18 specifies that messages with non-zero RCODE + * must be silently ignored, and that we must ignore the values of + * AA, RD, RA, AD, and CD bits. */ + if (DNS_PACKET_RCODE(p) != 0) return -EBADMSG; break; -- 2.25.1