mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 05:41:26 +02:00
Log servers are a real mess because: - entries are duplicated using memcpy() without their strings being reallocated, which results in these ones not being freeable every time. - a new field, ring_name, was added in 2.2 by commit 99c453df9 ("MEDIUM: ring: new section ring to declare custom ring buffers.") but it's never initialized during copies, causing the same issue - no attempt is made at freeing all that. Of course, running "haproxy -c" under ASAN quickly notices that and dumps a core. This patch adds the missing strdup() and initialization where required, adds a new free_logsrv() function to cleanly free() such a structure, calls it from the proxy when iterating over logsrvs instead of silently leaking their file names and ring names, and adds the same logsrv loop to the proxy_free_defaults() function so that we don't leak defaults sections on exit. It looks a bit entangled, but it comes as a whole because all this stuff is inter-dependent and was missing. It's probably preferable not to backport this in the foreseable future as it may reveal other jokes if some obscure parts continue to memcpy() the logsrv struct.
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
Languages
C
98.1%
Shell
0.8%
Makefile
0.5%
Lua
0.2%
Python
0.2%