From 4aefbe0c7a665ee077b3ddbfc0c7738cd7333558 Mon Sep 17 00:00:00 2001 From: Alfredo Cardigliano Date: Mon, 14 Jun 2021 14:41:14 +0200 Subject: Call ac_automata_release with free_pattern = 1 (malloc'ed patterns expected in ndpi_add_string_to_automa) --- src/include/ndpi_api.h.in | 4 ++-- src/lib/ndpi_main.c | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/include/ndpi_api.h.in b/src/include/ndpi_api.h.in index a2e362acd..f2da3b186 100644 --- a/src/include/ndpi_api.h.in +++ b/src/include/ndpi_api.h.in @@ -840,7 +840,7 @@ extern "C" { * Add a string to match to an automata * * @par The automata initialized with ndpi_init_automa(); - * @par The (sub)string to search + * @par The (sub)string to search (malloc'ed memory) * @par The number associated with this string * @return 0 in case of no error, or -1 if an error occurred. * @@ -851,7 +851,7 @@ extern "C" { * Add a string to match to an automata. Same as ndpi_add_string_value_to_automa() with num set to 1 * * @par The automata initialized with ndpi_init_automa(); - * @par The (sub)string to search + * @par The (sub)string to search (malloc'ed memory) * @return 0 in case of no error, or -1 if an error occurred. * */ diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index 2a3e8664d..25b9259ea 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -701,15 +701,18 @@ static void init_string_based_protocols(struct ndpi_detection_module_struct *ndp /* ************************ */ for(i = 0; tls_certificate_match[i].string_to_match != NULL; i++) { + #if 0 printf("%s() %s / %u\n", __FUNCTION__, tls_certificate_match[i].string_to_match, tls_certificate_match[i].protocol_id); #endif + /* Note: string_to_match is not malloc'ed here as ac_automata_release is + * called with free_pattern = 0 */ ndpi_add_string_value_to_automa(ndpi_str->tls_cert_subject_automa.ac_automa, - tls_certificate_match[i].string_to_match, - tls_certificate_match[i].protocol_id); + tls_certificate_match[i].string_to_match, + tls_certificate_match[i].protocol_id); } /* ************************ */ @@ -2427,7 +2430,7 @@ int ndpi_add_string_to_automa(void *_automa, char *str) { /* ****************************************************** */ void ndpi_free_automa(void *_automa) { - ac_automata_release((AC_AUTOMATA_t *) _automa, 0); + ac_automata_release((AC_AUTOMATA_t *) _automa, 1); } /* ****************************************************** */ -- cgit v1.2.3