From ee945349063418882eb7a4a968fe72176c4eda04 Mon Sep 17 00:00:00 2001 From: ragostino <74959231+ragostino@users.noreply.github.com> Date: Wed, 3 Feb 2021 09:31:17 +0100 Subject: debug message bugfix (#1108) you can not look for memory enlargement if you print debug message after updating the variables --- src/lib/protocols/tls.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/lib/protocols/tls.c b/src/lib/protocols/tls.c index 0197b0a23..0eebe7773 100644 --- a/src/lib/protocols/tls.c +++ b/src/lib/protocols/tls.c @@ -139,18 +139,18 @@ void ndpi_search_tls_tcp_memory(struct ndpi_detection_module_struct *ndpi_struct avail_bytes = flow->l4.tcp.tls.message.buffer_len - flow->l4.tcp.tls.message.buffer_used; if(avail_bytes < packet->payload_packet_len) { - u_int new_len = flow->l4.tcp.tls.message.buffer_len + packet->payload_packet_len; + u_int new_len = flow->l4.tcp.tls.message.buffer_len + packet->payload_packet_len - avail_bytes + 1; void *newbuf = ndpi_realloc(flow->l4.tcp.tls.message.buffer, flow->l4.tcp.tls.message.buffer_len, new_len); if(!newbuf) return; - flow->l4.tcp.tls.message.buffer = (u_int8_t*)newbuf; - flow->l4.tcp.tls.message.buffer_len = new_len; - avail_bytes = flow->l4.tcp.tls.message.buffer_len - flow->l4.tcp.tls.message.buffer_used; - #ifdef DEBUG_TLS_MEMORY printf("[TLS Mem] Enlarging %u -> %u buffer\n", flow->l4.tcp.tls.message.buffer_len, new_len); #endif + + flow->l4.tcp.tls.message.buffer = (u_int8_t*)newbuf; + flow->l4.tcp.tls.message.buffer_len = new_len; + avail_bytes = flow->l4.tcp.tls.message.buffer_len - flow->l4.tcp.tls.message.buffer_used; } if(packet->payload_packet_len > 0 && avail_bytes >= packet->payload_packet_len) { -- cgit v1.2.3