]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: mailers: Fix a memory leak when email alerts are released
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 23 Oct 2017 13:38:19 +0000 (15:38 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Oct 2017 10:36:12 +0000 (11:36 +0100)
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

index ed9a49a24dd6e6e16e2c82bbf864889f778c4b96..d9c339343da5d1aa828c8f7bcbdf414480e22c22 100644 (file)
@@ -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);
 }