From c0ec754ac3eab67f27aa1ff5b3a459466a5e092e Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Sun, 2 Dec 2018 15:01:28 +0800 Subject: [PATCH] Bug fix --- src/dns_server.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/dns_server.c b/src/dns_server.c index a5722a8..1e7e018 100644 --- a/src/dns_server.c +++ b/src/dns_server.c @@ -1385,15 +1385,16 @@ int _dns_server_tcp_process_one_request(struct dns_server_conn *dnsserver) } request_len = ntohs(*((unsigned short *)(dnsserver->recvbuff.buf + proceed_len))); - if (request_len > (total_len - proceed_len)) { - return 1; - } - - if (request_len > 4096) { + + if (request_len >= sizeof(dnsserver->recvbuff.buf)) { tlog(TLOG_ERROR, "request length is invalid."); return -1; } + if (request_len > (total_len - proceed_len)) { + return 1; + } + request_data = (unsigned char *)(dnsserver->recvbuff.buf + proceed_len + sizeof(unsigned short)); if (_dns_server_recv(dnsserver, request_data, request_len, &dnsserver->addr, dnsserver->addr_len) != 0) {