diff options
author | Luca Deri <lucaderi@users.noreply.github.com> | 2019-11-03 17:13:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-03 17:13:49 +0100 |
commit | 9e42b525ecc5bcf618be3e0ff97e8ba0fe3d305c (patch) | |
tree | d48d6faf5e96bfe72817f8f1689f8ddd4627c0a4 | |
parent | 02d69b72f54a30ec48045832fc40e0909e0f413d (diff) | |
parent | 9f5e5b90e5f460a9038f5e7ec2d8672049f861c1 (diff) |
Merge pull request #806 from oleg-umnik/fix_1
Don't leak memory in live capture mode
-rw-r--r-- | example/ndpiReader.c | 1 | ||||
-rw-r--r-- | example/reader_util.c | 10 | ||||
-rw-r--r-- | example/reader_util.h | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c index f70ebd785..b1a45f280 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -1805,6 +1805,7 @@ static void node_idle_scan_walker(const void *node, ndpi_VISIT which, int depth, undetected_flows_deleted = 1; ndpi_free_flow_info_half(flow); + ndpi_free_flow_data_analysis(flow); ndpi_thread_info[thread_id].workflow->stats.ndpi_flow_count--; /* adding to a queue (we can't delete it from the tree inline ) */ diff --git a/example/reader_util.c b/example/reader_util.c index 44e02616e..d72a494fa 100644 --- a/example/reader_util.c +++ b/example/reader_util.c @@ -457,6 +457,14 @@ void ndpi_flow_info_freer(void *node) { ndpi_free_flow_info_half(flow); + ndpi_free_flow_data_analysis(flow); + + ndpi_free(flow); +} + +/* ***************************************************** */ + +void ndpi_free_flow_data_analysis(struct ndpi_flow_info *flow) { if(flow->iat_c_to_s) ndpi_free_data_analysis(flow->iat_c_to_s); if(flow->iat_s_to_c) ndpi_free_data_analysis(flow->iat_s_to_c); @@ -464,8 +472,6 @@ void ndpi_flow_info_freer(void *node) { if(flow->pktlen_s_to_c) ndpi_free_data_analysis(flow->pktlen_s_to_c); if(flow->iat_flow) ndpi_free_data_analysis(flow->iat_flow); - - ndpi_free(flow); } /* ***************************************************** */ diff --git a/example/reader_util.h b/example/reader_util.h index 93df6b03a..1b9b6babd 100644 --- a/example/reader_util.h +++ b/example/reader_util.h @@ -303,6 +303,7 @@ int ndpi_workflow_node_cmp(const void *a, const void *b); void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_flow_info *flow); u_int32_t ethernet_crc32(const void* data, size_t n_bytes); void ndpi_flow_info_freer(void *node); +void ndpi_free_flow_data_analysis(struct ndpi_flow_info *flow); const char* print_cipher_id(u_int32_t cipher); float ndpi_flow_get_byte_count_entropy(const uint32_t byte_count[256], unsigned int num_bytes); |