]> git.kaiwu.me - haproxy.git/commit
BUG/MINOR: server: fix a leak when completing a named default-server
authorAlexandre Laroche <larochealexandre@hotmail.com>
Fri, 6 Nov 2026 08:42:19 +0000 (03:42 -0500)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 6 Nov 2026 15:35:24 +0000 (16:35 +0100)
commit8c0f8fbc39850a584d3ca8c93d867e95eb1e97b9
treeef67b10a99a632ba9326deccf0d7b8fca0b293ab
parenta07d6078546ea2343155827883796296972db0da
BUG/MINOR: server: fix a leak when completing a named default-server

A named default-server may be defined over several lines, each line
completing the previous one, as documented and as exercised by
reg-tests/server/from_keyword.vtc. In _srv_parse_init(), the name is
duplicated with strdup() before being looked up in defsrv_by_name.
When the lookup finds the existing default-server, the copy is neither
stored nor freed, so every line after the first one leaks it.

The leak only happens at configuration load and is limited to the name
length plus one byte per line, so the impact is minimal, but it is
reported by LeakSanitizer, e.g. "haproxy -c" built with
-fsanitize=address on a configuration defining the same
"default-server name other ..." on several lines.

Fix it by freeing the copy when an existing default-server is found,
since that one already owns its name. The code path is already covered
by reg-tests/server/from_keyword.vtc, so no new regression test is
added.

This was introduced with named default-servers by commit 507f790af
("MEDIUM: proxy: implement named default-server") in 3.5-dev4, so no
backport is needed.

This fixes GitHub issue #3562.
src/server.c