resolve: transaction - stop processing packet when found to be invalid

We were stopping the transaction, but we need to stop processing the packet alltogether.
This commit is contained in:
Tom Gundersen 2015-07-19 21:42:52 +02:00
parent 0e03ade57e
commit 6709eb94f9
1 changed files with 3 additions and 1 deletions

View 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);