BUG/MEDIUM: cli: prevent memory leak on write errors
authorWilly Tarreau <w@1wt.eu>
Tue, 4 May 2021 14:27:45 +0000 (16:27 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 4 May 2021 14:27:45 +0000 (16:27 +0200)
commit18b2a9dd874b66acca304580047fa6b3c16da1e3
treee984215be7e5e5da3a5bd9419fb5a2f1068812dd
parentc31b2008728babbc8738b88b593f2be40324369b
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.
src/cli.c