]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: checks: email-alert causes a segfault when an unknown mailers section...
authorCyril Bonté <cyril.bonte@free.fr>
Fri, 4 Dec 2015 02:07:07 +0000 (03:07 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 4 Dec 2015 05:09:30 +0000 (06:09 +0100)
A segfault can occur during at the initialization phase, when an unknown
"mailers" name is configured. This happens when "email-alert myhostname" is not
set, where a direct pointer to an array is used instead of copying the string,
causing the segfault when haproxy tries to free the memory.

This is a minor issue because the configuration is invalid and a fatal error
will remain, but it should be fixed to prevent reload issues.

Example of minimal configuration to reproduce the bug :
    backend example
        email-alert mailers NOT_FOUND
        email-alert from foo@localhost
        email-alert to bar@localhost

This fix must be backported to 1.6.

src/cfgparse.c

index 9ebae2cfad53963f607d3d7d77dc4ea04f431605..97f42430972c7fe891364591ae2463629d3b956d 100644 (file)
@@ -7470,7 +7470,7 @@ int check_config_validity()
                            free_email_alert(curproxy);
                    }
                    if (!curproxy->email_alert.myhostname)
-                           curproxy->email_alert.myhostname = hostname;
+                           curproxy->email_alert.myhostname = strdup(hostname);
                }
 
                if (curproxy->check_command) {