From 4b1cae2c2be5be76e848c9794b62e5095a6b38f0 Mon Sep 17 00:00:00 2001 From: Luca Deri Date: Mon, 27 Jul 2020 06:52:35 +0200 Subject: Boundary check --- src/lib/protocols/iax.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/lib/protocols/iax.c') diff --git a/src/lib/protocols/iax.c b/src/lib/protocols/iax.c index 5e03baf50..09a468950 100644 --- a/src/lib/protocols/iax.c +++ b/src/lib/protocols/iax.c @@ -65,17 +65,18 @@ static void ndpi_search_setup_iax(struct ndpi_detection_module_struct *ndpi_stru ndpi_int_iax_add_connection(ndpi_struct, flow); return; } + packet_len = 12; - for (i = 0; i < NDPI_IAX_MAX_INFORMATION_ELEMENTS; i++) { + for(i = 0; i < NDPI_IAX_MAX_INFORMATION_ELEMENTS; i++) { + if (packet_len >= packet->payload_packet_len) + break; + packet_len = packet_len + 2 + packet->payload[packet_len + 1]; - if (packet_len == packet->payload_packet_len) { + if(packet_len == packet->payload_packet_len) { NDPI_LOG_INFO(ndpi_struct, "found IAX\n"); ndpi_int_iax_add_connection(ndpi_struct, flow); return; } - if (packet_len > packet->payload_packet_len) { - break; - } } } -- cgit v1.2.3