]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolve: transaction - stop processing packet when found to be invalid 690/head
authorTom Gundersen <teg@jklm.no>
Sun, 19 Jul 2015 19:42:52 +0000 (21:42 +0200)
committerTom Gundersen <teg@jklm.no>
Thu, 23 Jul 2015 16:06:50 +0000 (18:06 +0200)
We were stopping the transaction, but we need to stop processing the packet alltogether.

src/resolve/resolved-dns-transaction.c

index e468f245f70e5b5413f47421664029f5eb39b1a5..3d46c99df85f26b74b7d93b7df29376e489006ca 100644 (file)
@@ -417,8 +417,10 @@ void dns_transaction_process_reply(DnsTransaction *t, DnsPacket *p) {
 
         /* Only consider responses with equivalent query section to the request */
         if (!dns_question_is_superset(p->question, t->question) ||
-            !dns_question_is_superset(t->question, p->question))
+            !dns_question_is_superset(t->question, p->question)) {
                 dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
+                return;
+        }
 
         /* According to RFC 4795, section 2.9. only the RRs from the answer section shall be cached */
         dns_cache_put(&t->scope->cache, p->question, DNS_PACKET_RCODE(p), p->answer, DNS_PACKET_ANCOUNT(p), 0, p->family, &p->sender);