From: Lennart Poettering Date: Fri, 18 Dec 2015 13:33:59 +0000 (+0100) Subject: resolved: refuse to add auxiliary transactions loops X-Git-Tag: v229~201^2~23 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aae6a86e1af88db640180de824e064069a448aeb;p=thirdparty%2Fsystemd.git resolved: refuse to add auxiliary transactions loops Let's be safe and explicitly avoid that we add an auxiliary transaction dependency on ourselves. --- diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c index e65593e1436..5b6846f008b 100644 --- a/src/resolve/resolved-dns-transaction.c +++ b/src/resolve/resolved-dns-transaction.c @@ -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)