From: Lennart Poettering Date: Tue, 10 Nov 2020 13:52:25 +0000 (+0100) Subject: resolved: gracefully handle trailing packet garbage X-Git-Tag: v248-rc1~133^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F18587%2Fhead;p=thirdparty%2Fsystemd.git resolved: gracefully handle trailing packet garbage Similar to the previous commit: if we see trailing garbage in a DNS packet, let's assume EDNS is borked too, and suppress it. --- diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index 953d5fa337d..f548bbf9f25 100644 --- a/src/resolve/resolved-dns-packet.c +++ b/src/resolve/resolved-dns-packet.c @@ -2394,6 +2394,12 @@ int dns_packet_extract(DnsPacket *p) { if (r < 0) return r; + if (p->rindex < p->size) { + log_debug("Trailing garbage in packet, suppressing OPT."); + p->opt = dns_resource_record_unref(p->opt); + p->opt_start = p->opt_size = SIZE_MAX; + } + p->question = TAKE_PTR(question); p->answer = TAKE_PTR(answer);