aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/ndpiReader.c4
-rw-r--r--src/include/ndpi_api.h.in4
-rw-r--r--src/lib/ndpi_main.c9
3 files changed, 10 insertions, 7 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index fceffa30a..b4153c8bf 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -3693,8 +3693,8 @@ void automataUnitTest() {
void *automa = ndpi_init_automa();
assert(automa);
- assert(ndpi_add_string_to_automa(automa, "hello") == 0);
- assert(ndpi_add_string_to_automa(automa, "world") == 0);
+ assert(ndpi_add_string_to_automa(automa, strdup("hello")) == 0);
+ assert(ndpi_add_string_to_automa(automa, strdup("world")) == 0);
ndpi_finalize_automa(automa);
assert(ndpi_match_string(automa, "This is the wonderful world of nDPI") == 1);
ndpi_free_automa(automa);
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);
}
/* ****************************************************** */