diff options
author | Luca Deri <lucaderi@users.noreply.github.com> | 2019-04-12 19:19:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-12 19:19:46 +0200 |
commit | 6f8a01ca18e7fa9fe133c0ad7afb52bc194e2bba (patch) | |
tree | 6b09acd5ba70a895f3aa193a4195a2d9f5e27746 /src | |
parent | 5b6526cc5ae7c396a33a75c6a4935f5bf266f907 (diff) | |
parent | 74715b12b0770a3f724565633128f73396f0f792 (diff) |
Merge pull request #695 from pallas/avoid-memcached-short-read
memcached: fix invalid read on short packet
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/protocols/memcached.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/protocols/memcached.c b/src/lib/protocols/memcached.c index e9deb5cc9..44a8b0858 100644 --- a/src/lib/protocols/memcached.c +++ b/src/lib/protocols/memcached.c @@ -89,7 +89,7 @@ #define MEMCACHED_MIN_MATCH 2 /* Minimum number of command/responses required */ -#define MEMCACHED_MATCH(cr) memcmp(offset, cr, cr ## _LEN) +#define MEMCACHED_MATCH(cr) (cr ## _LEN > length || memcmp(offset, cr, cr ## _LEN)) static void ndpi_int_memcached_add_connection(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) @@ -105,6 +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_int8_t *matches; NDPI_LOG_DBG(ndpi_struct, "search memcached\n"); |