From: Lennart Poettering Date: Wed, 13 Mar 2019 18:28:38 +0000 (+0100) Subject: resolved: don't let EDNS0 OPT dgram size affect TCP X-Git-Tag: v242-rc1~133^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=acd74d61d2906a57ec37bfdc793c56b403d18324;p=thirdparty%2Fsystemd.git resolved: don't let EDNS0 OPT dgram size affect TCP Fixes: #11884 --- diff --git a/src/resolve/resolved-dns-packet.h b/src/resolve/resolved-dns-packet.h index 008860b5d1d..56614c4a071 100644 --- a/src/resolve/resolved-dns-packet.h +++ b/src/resolve/resolved-dns-packet.h @@ -119,12 +119,12 @@ static inline uint16_t DNS_PACKET_PAYLOAD_SIZE_MAX(DnsPacket *p) { /* Returns the advertised maximum size for replies, or the DNS default if there's nothing defined. */ + if (p->ipproto == IPPROTO_TCP) /* we ignore EDNS(0) size data on TCP, like everybody else */ + return DNS_PACKET_SIZE_MAX; + if (p->opt) return MAX(DNS_PACKET_UNICAST_SIZE_MAX, p->opt->key->class); - if (p->ipproto == IPPROTO_TCP) - return DNS_PACKET_SIZE_MAX; - return DNS_PACKET_UNICAST_SIZE_MAX; }