aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_main.c
diff options
context:
space:
mode:
authoremanuele-f <faranda@ntop.org>2020-01-02 14:39:51 +0100
committeremanuele-f <faranda@ntop.org>2020-01-02 14:39:51 +0100
commit798bb6e2e113f10d9b710179553e4cef23222a61 (patch)
treee200ef28aca2890291a3a3657a7c1ee3bf20596f /src/lib/ndpi_main.c
parent2332cbfefec9a64c77e5c30530f0e397a1388470 (diff)
Fix leaks and sha1 certificate detection
Diffstat (limited to 'src/lib/ndpi_main.c')
-rw-r--r--src/lib/ndpi_main.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 7ad648ee6..9296d10a2 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -3835,12 +3835,10 @@ static int ndpi_init_packet_header(struct ndpi_detection_module_struct *ndpi_str
u_int8_t backup;
u_int16_t backup1, backup2;
- if(flow->http.url) ndpi_free(flow->http.url);
- if(flow->http.content_type) ndpi_free(flow->http.content_type);
- if(flow->http.user_agent) ndpi_free(flow->http.user_agent);
-
- if(flow->l4.tcp.tls.message.buffer)
- ndpi_free(flow->l4.tcp.tls.message.buffer);
+ if(flow->http.url) ndpi_free(flow->http.url), flow->http.url = NULL;
+ if(flow->http.content_type) ndpi_free(flow->http.content_type), flow->http.content_type = NULL;
+ if(flow->http.user_agent) ndpi_free(flow->http.user_agent), flow->http.user_agent = NULL;
+ if(flow->l4.tcp.tls.message.buffer) ndpi_free(flow->l4.tcp.tls.message.buffer), flow->l4.tcp.tls.message.buffer = NULL;
backup = flow->num_processed_pkts;
backup1 = flow->guessed_protocol_id;
@@ -6426,6 +6424,11 @@ void ndpi_free_flow(struct ndpi_flow_struct *flow) {
ndpi_free(flow->l4.tcp.tls.srv_cert_fingerprint_ctx);
}
+ if(flow->l4_proto == IPPROTO_TCP) {
+ if(flow->l4.tcp.tls.message.buffer)
+ ndpi_free(flow->l4.tcp.tls.message.buffer);
+ }
+
ndpi_free(flow);
}
}