aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/dns.c
diff options
context:
space:
mode:
authorLuca <deri@ntop.org>2016-01-21 13:25:55 +0100
committerLuca <deri@ntop.org>2016-01-21 13:25:55 +0100
commitbc48b770de2afc7383e924eb5fb819ad6c4fcfa2 (patch)
treeeef2da6193f3d5975bd7b33efd4205ac47f83607 /src/lib/protocols/dns.c
parent0f3222e48946ee20e6de22cbe744ff7a84198dae (diff)
Added ndpi_automa_match_string_subprotocol call
Fixed DNS dissector decoding bug
Diffstat (limited to 'src/lib/protocols/dns.c')
-rw-r--r--src/lib/protocols/dns.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/protocols/dns.c b/src/lib/protocols/dns.c
index 9f9bb243b..8749f4d5e 100644
--- a/src/lib/protocols/dns.c
+++ b/src/lib/protocols/dns.c
@@ -72,10 +72,10 @@ void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct nd
/* 0x0000 QUERY */
if((dns_header->flags & FLAGS_MASK) == 0x0000)
- is_query = 0;
+ is_query = 1;
/* 0x8000 RESPONSE */
else if((dns_header->flags & FLAGS_MASK) != 0x8000)
- is_query = 1;
+ is_query = 0;
else
invalid = 1;
@@ -89,7 +89,7 @@ void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct nd
invalid = 1;
} else {
/* DNS Reply */
- if((dns_header->num_queries <= NDPI_MAX_DNS_REQUESTS) /* Don't assume that num_queries must be zero */
+ if((dns_header->num_queries > 0) && (dns_header->num_queries <= NDPI_MAX_DNS_REQUESTS) /* Don't assume that num_queries must be zero */
&& (((dns_header->num_answers > 0) && (dns_header->num_answers <= NDPI_MAX_DNS_REQUESTS))
|| ((dns_header->authority_rrs > 0) && (dns_header->authority_rrs <= NDPI_MAX_DNS_REQUESTS))
|| ((dns_header->additional_rrs > 0) && (dns_header->additional_rrs <= NDPI_MAX_DNS_REQUESTS)))