summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dns.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dns.cpp b/src/dns.cpp
index 2872d04..c11f44a 100644
--- a/src/dns.cpp
+++ b/src/dns.cpp
@@ -1382,13 +1382,19 @@ int parse_query_question(struct streaminfo *a_stream, dns_info_t *dns_info, char
if(0 == dns_info->hdr_info.qdcount || dns_info->hdr_info.qdcount > 1)
{
- return APP_STATE_GIVEME;
+ return APP_STATE_DROPME;
}
dns_info->query_question = (dns_query_question_t *)calloc(dns_info->hdr_info.qdcount, sizeof(dns_query_question_t));
if(0 != (ret = get_dns_query_question(payload, cur_pos, dns_info->query_question, payload+payload_len)))
{
+ if(dns_info->query_question!=NULL)
+ {
+ free(dns_info->query_question);
+ dns_info->query_question=NULL;
+ }
+
if(ret == -2)
{
dns_save_error_pkt(a_stream, DNS_ERROR_QUESTION);