diff options
author | Luca Deri <deri@ntop.org> | 2020-07-27 06:52:35 +0200 |
---|---|---|
committer | Luca Deri <deri@ntop.org> | 2020-07-27 06:52:35 +0200 |
commit | 4b1cae2c2be5be76e848c9794b62e5095a6b38f0 (patch) | |
tree | 5bf8154731342529afc731eca4776ffd97b03d3e /src/lib/protocols/iax.c | |
parent | 95263fc32e75c198b21ceedfd15522d4aa5a761d (diff) |
Boundary check
Diffstat (limited to 'src/lib/protocols/iax.c')
-rw-r--r-- | src/lib/protocols/iax.c | 11 |
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; - } } } |