From de1a75b86954ede54cdc82cc913ef6b17e2db6f5 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 23 Oct 2017 15:38:19 +0200 Subject: [PATCH] BUG/MINOR: mailers: Fix a memory leak when email alerts are released An email alert contains a list of tcpcheck_rule. Each one is dynamically allocated, just like its internal members. So, when an email alerts is freed, we must be sure to properly free each tcpcheck_rule too. This patch must be backported in 1.7 and 1.6. --- src/checks.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/checks.c b/src/checks.c index ed9a49a..d9c3393 100644 --- a/src/checks.c +++ b/src/checks.c @@ -3038,8 +3038,14 @@ void email_alert_free(struct email_alert *alert) if (!alert) return; - list_for_each_entry_safe(rule, back, &alert->tcpcheck_rules, list) + list_for_each_entry_safe(rule, back, &alert->tcpcheck_rules, list) { + LIST_DEL(&rule->list); + free(rule->comment); + free(rule->string); + if (rule->expect_regex) + regex_free(rule->expect_regex); free(rule); + } free(alert); } -- 1.7.10.4