aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/tls.c
diff options
context:
space:
mode:
authorLuca Deri <deri@ntop.org>2020-01-09 17:14:37 +0100
committerLuca Deri <deri@ntop.org>2020-01-09 17:14:37 +0100
commit5987ec6014d4006a314f5680ca7b667800db28d2 (patch)
treede82a416d47f6f8750d0d7aa2819c968321d1eb2 /src/lib/protocols/tls.c
parent757b0c602fbae0de358988efadf2f3c263b72b46 (diff)
Added check for preventing TLS misbehavior
Diffstat (limited to 'src/lib/protocols/tls.c')
-rw-r--r--src/lib/protocols/tls.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/protocols/tls.c b/src/lib/protocols/tls.c
index b0e192baa..08ce81edd 100644
--- a/src/lib/protocols/tls.c
+++ b/src/lib/protocols/tls.c
@@ -569,10 +569,13 @@ static int ndpi_search_tls_tcp(struct ndpi_detection_module_struct *ndpi_struct,
packet->payload = p, packet->payload_packet_len = p_len; /* Restore */
flow->l4.tcp.tls.message.buffer_used -= len;
- memmove(flow->l4.tcp.tls.message.buffer,
- &flow->l4.tcp.tls.message.buffer[len],
- flow->l4.tcp.tls.message.buffer_used);
-
+ if(flow->l4.tcp.tls.message.buffer_used > 0)
+ memmove(flow->l4.tcp.tls.message.buffer,
+ &flow->l4.tcp.tls.message.buffer[len],
+ flow->l4.tcp.tls.message.buffer_used);
+ else
+ break;
+
#ifdef DEBUG_TLS_MEMORY
printf("[TLS Mem] Left memory buffer %u bytes\n", flow->l4.tcp.tls.message.buffer_used);
#endif