aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/memcached.c
diff options
context:
space:
mode:
authorPhilippe Antoine <contact@catenacyber.fr>2020-01-31 15:09:32 +0100
committerPhilippe Antoine <contact@catenacyber.fr>2020-01-31 15:21:03 +0100
commit579dd7dff9bcb973ab83d7b222d5250de5028794 (patch)
tree87337e20e236be5de3df6eb082ed8a99c19ec2e0 /src/lib/protocols/memcached.c
parentff89a14b496f816b27d8a333bb022b3da34561d8 (diff)
Fix memcached read overflow
Diffstat (limited to 'src/lib/protocols/memcached.c')
-rw-r--r--src/lib/protocols/memcached.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/protocols/memcached.c b/src/lib/protocols/memcached.c
index 664fd195b..ef846c9e2 100644
--- a/src/lib/protocols/memcached.c
+++ b/src/lib/protocols/memcached.c
@@ -105,7 +105,7 @@ void ndpi_search_memcached(
{
struct ndpi_packet_struct *packet = &flow->packet;
const u_int8_t *offset = packet->payload;
- const u_int16_t length = packet->payload_packet_len;
+ u_int16_t length = packet->payload_packet_len;
u_int8_t *matches;
NDPI_LOG_DBG(ndpi_struct, "search memcached\n");
@@ -131,6 +131,7 @@ void ndpi_search_memcached(
}
offset += MEMCACHED_UDP_HDR_LEN;
+ length -= MEMCACHED_UDP_HDR_LEN;
matches = &flow->l4.udp.memcached_matches;
}
else {