From: Lennart Poettering Date: Tue, 29 Dec 2015 18:00:53 +0000 (+0100) Subject: resolved: reset RR TTL to 0, if MSB is set X-Git-Tag: v229~180^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0d0b52d79c2e9a79aeff9a9cca877de8b4fcbd16;p=thirdparty%2Fsystemd.git resolved: reset RR TTL to 0, if MSB is set RFC 2181, Section 8 suggests to treat an RR TTL with the MSB set as 0. Implement this. --- diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index 5f797012961..b0c70d0017b 100644 --- a/src/resolve/resolved-dns-packet.c +++ b/src/resolve/resolved-dns-packet.c @@ -1580,6 +1580,11 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, bool *ret_cache_fl if (r < 0) goto fail; + /* RFC 2181, Section 8, suggests to + * treat a TTL with the MSB set as a zero TTL. */ + if (rr->ttl & UINT32_C(0x80000000)) + rr->ttl = 0; + r = dns_packet_read_uint16(p, &rdlength, NULL); if (r < 0) goto fail;