aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/iax.c
diff options
context:
space:
mode:
authorLuca Deri <deri@ntop.org>2020-07-27 06:52:35 +0200
committerLuca Deri <deri@ntop.org>2020-07-27 06:52:35 +0200
commit4b1cae2c2be5be76e848c9794b62e5095a6b38f0 (patch)
tree5bf8154731342529afc731eca4776ffd97b03d3e /src/lib/protocols/iax.c
parent95263fc32e75c198b21ceedfd15522d4aa5a761d (diff)
Boundary check
Diffstat (limited to 'src/lib/protocols/iax.c')
-rw-r--r--src/lib/protocols/iax.c11
1 files changed, 6 insertions, 5 deletions
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;
- }
}
}