From: Sergey Bugaev Date: Fri, 19 Feb 2021 12:29:02 +0000 (+0300) Subject: resolved: don't discard mDNS queries with bad flags X-Git-Tag: v248-rc3~121 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2aaf3765974c9f340c0c3d705e9f0609073cf83c;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index a51514a8de8..9778f5ee6b5 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;