tree a90809bdb7bc48d4283a11d63cc126cb60652c7d
parent 98c44d372e138b93b75536641ec759e13cd6b859
author Aurelien DARRAGON <adarragon@haproxy.com> 1675781518 +0100
committer Christopher Faulet <cfaulet@haproxy.com> 1682089490 +0200

BUG/MINOR: protocol: fix minor memory leak in protocol_bind_all()

In protocol_bind_all() (involved in startup sequence):
We only free errmsg (set by fam->bind() attempt) when we make use of it.
But this could lead to some memory leaks because there are some cases
where we ignore the error message (e.g: verbose=0 with ERR_WARN messages).

As long as errmsg is set, we should always free it.

As mentioned earlier, this really is a minor leak because it can only occur on
specific conditions (error paths) during the startup phase.

This may be backported up to 2.4.

--
Backport notes:

-> 2.4 only:

Replace this:

    |                                        ha_warning("Binding [%s:%d] for %s %s: %s\n",
    |                                                   listener->bind_conf->file, listener->bind_conf->line,
    |                                                   proxy_type_str(px), px->id, errmsg);

By this:

    |                                else if (lerr & ERR_WARN)
    |                                        ha_warning("Starting %s %s: %s\n",
    |                                                   proxy_type_str(px), px->id, errmsg);

(cherry picked from commit 8429627e3c2eb472dc94ec8d3d7275ef68a79128)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit da9a15ff0326d59ba38f5a1b258820d91c7df649)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 44eef1b3b566ec73a6d242ca347e6b6111dfabaa)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit b984fcf574e66564a1015e7872be5300bf74c6e4)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
