aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols
diff options
context:
space:
mode:
authorLuca Deri <deri@ntop.org>2019-11-26 17:42:59 +0100
committerLuca Deri <deri@ntop.org>2019-11-26 17:42:59 +0100
commitc223bb1f10068c00aaf9e9c96709dc3984a969cb (patch)
treeeccd6e5b1ddeab7c0598412c8065795aee0e80c7 /src/lib/protocols
parentc7efd0892f1f9299360956b740044a798123a773 (diff)
Fixed buffer overflow in DNS dissection
Diffstat (limited to 'src/lib/protocols')
-rw-r--r--src/lib/protocols/dns.c4
-rw-r--r--src/lib/protocols/irc.c1
2 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/protocols/dns.c b/src/lib/protocols/dns.c
index 7051b2227..3fbb39915 100644
--- a/src/lib/protocols/dns.c
+++ b/src/lib/protocols/dns.c
@@ -47,7 +47,9 @@ static u_int16_t get16(int *i, const u_int8_t *payload) {
/* *********************************************** */
static u_int getNameLength(u_int i, const u_int8_t *payload, u_int payloadLen) {
- if(payload[i] == 0x00)
+ if(i >= payloadLen)
+ return(0);
+ else if(payload[i] == 0x00)
return(1);
else if(payload[i] == 0xC0)
return(2);
diff --git a/src/lib/protocols/irc.c b/src/lib/protocols/irc.c
index ec22ee38b..5ae0e34f7 100644
--- a/src/lib/protocols/irc.c
+++ b/src/lib/protocols/irc.c
@@ -492,6 +492,7 @@ void ndpi_search_irc_tcp(struct ndpi_detection_module_struct *ndpi_struct, struc
ndpi_parse_packet_line_info(ndpi_struct, flow);
} else {
flow->l4.tcp.irc_3a_counter++;
+ packet->parsed_lines = 0;
}
for (i = 0; i < packet->parsed_lines; i++) {
if (packet->line[i].ptr[0] == ':') {