From aa11cab98cf557c08a6910a1c91695213af33bba Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 13 Mar 2019 19:26:27 +0100 Subject: [PATCH] resolved: don't follow cnames if we already noticed truncation --- src/resolve/resolved-dns-stub.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/resolve/resolved-dns-stub.c b/src/resolve/resolved-dns-stub.c index 906bdc4bbb..4549fe0c72 100644 --- a/src/resolve/resolved-dns-stub.c +++ b/src/resolve/resolved-dns-stub.c @@ -189,17 +189,19 @@ static void dns_stub_query_complete(DnsQuery *q) { break; } - r = dns_query_process_cname(q); - if (r == -ELOOP) { - (void) dns_stub_send_failure(q->manager, q->request_dns_stream, q->request_dns_packet, DNS_RCODE_SERVFAIL, false); - break; - } - if (r < 0) { - log_debug_errno(r, "Failed to process CNAME: %m"); - break; + if (!truncated) { + r = dns_query_process_cname(q); + if (r == -ELOOP) { + (void) dns_stub_send_failure(q->manager, q->request_dns_stream, q->request_dns_packet, DNS_RCODE_SERVFAIL, false); + break; + } + if (r < 0) { + log_debug_errno(r, "Failed to process CNAME: %m"); + break; + } + if (r == DNS_QUERY_RESTARTED) + return; } - if (r == DNS_QUERY_RESTARTED) - return; r = dns_stub_finish_reply_packet( q->reply_dns_packet, -- 2.25.1