From 0d0b52d79c2e9a79aeff9a9cca877de8b4fcbd16 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 29 Dec 2015 19:00:53 +0100 Subject: 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. --- src/resolve/resolved-dns-packet.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/resolve/resolved-dns-packet.c') diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index 5f79701296..b0c70d0017 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; -- cgit v1.2.3-54-g00ecf