BUG/MEDIUM: cli: prevent memory leak on write errors

Since the introduction of payload support on the CLI in 1.9-dev1 by
commit abbf60710 ("MEDIUM: cli: Add payload support"), a chunk is
temporarily allocated for the CLI to support defragmenting a payload
passed with a command. However it's only released when passing via
the CLI_ST_END state (i.e. on clean shutdown), but not on errors.
Something as trivial as:

  $ while :; do ncat --send-only -U /path/to/cli <<< "show stat"; done

with a few hundreds of servers is enough see the number of allocated
trash chunks go through the roof in "show pools".

This needs to be backported as far as 2.0.

(cherry picked from commit 18b2a9dd874b66acca304580047fa6b3c16da1e3)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit bfca73774afea9091d4902af66ed05a36a50f137)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 72f210d9b2a60059f5e3f38491d3f991a0bd82c1)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
1 file changed