aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/capwap.c
diff options
context:
space:
mode:
authorPhilippe Antoine <contact@catenacyber.fr>2020-03-12 14:03:31 +0100
committerPhilippe Antoine <contact@catenacyber.fr>2020-03-12 14:03:31 +0100
commit4976d93d4e7ce5e63cb562fb7f0f916c3103e2de (patch)
treeb7b9675b402dd9e83f46ff6e9a777d0cadc6f823 /src/lib/protocols/capwap.c
parent1e933e8b026f6f88f27d64ec2260013f38d268d0 (diff)
Fix buffer overread in ndpi_search_setup_capwap
Diffstat (limited to 'src/lib/protocols/capwap.c')
-rw-r--r--src/lib/protocols/capwap.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/protocols/capwap.c b/src/lib/protocols/capwap.c
index bfad1a593..33b20fcab 100644
--- a/src/lib/protocols/capwap.c
+++ b/src/lib/protocols/capwap.c
@@ -66,10 +66,12 @@ static void ndpi_search_setup_capwap(struct ndpi_detection_module_struct *ndpi_s
else
offset = 15, to_add = 17;
- msg_len = ntohs(*(u_int16_t*)&packet->payload[offset]);
+ if (packet->payload_packet_len >= offset + sizeof(u_int16_t)) {
+ msg_len = ntohs(*(u_int16_t*)&packet->payload[offset]);
- if((msg_len+to_add) == packet->payload_packet_len)
- goto capwap_found;
+ if((msg_len+to_add) == packet->payload_packet_len)
+ goto capwap_found;
+ }
}
if(