resolved: refuse to add auxiliary transactions loops
authorLennart Poettering <lennart@poettering.net>
Fri, 18 Dec 2015 13:33:59 +0000 (14:33 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 18 Dec 2015 13:48:50 +0000 (14:48 +0100)
Let's be safe and explicitly avoid that we add an auxiliary transaction
dependency on ourselves.

src/resolve/resolved-dns-transaction.c

index e65593e..5b6846f 100644 (file)
@@ -1181,6 +1181,12 @@ static int dns_transaction_request_dnssec_rr(DnsTransaction *t, DnsResourceKey *
         assert(t);
         assert(key);
 
+        r = dns_resource_key_equal(t->key, key);
+        if (r < 0)
+                return r;
+        if (r > 0) /* Don't go in circles */
+                return 0;
+
         /* Try to get the data from the trust anchor */
         r = dns_trust_anchor_lookup(&t->scope->manager->trust_anchor, key, &a);
         if (r < 0)