BUG/MAJOR: applet: fix a MIN vs MAX usage in appctx_raw_rcv_buf()
authorWilly Tarreau <w@1wt.eu>
Wed, 3 Apr 2024 07:25:43 +0000 (09:25 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 3 Apr 2024 07:34:08 +0000 (09:34 +0200)
commit1ea18fa8a3ab961ea43610e22dda3c87e8f2a67a
tree5e9b9222fc33f3e31c3d877276bdb3444d931506
parented45d1332171a594f4ce7b19afc1399e889ee074
BUG/MAJOR: applet: fix a MIN vs MAX usage in appctx_raw_rcv_buf()

The MAX() macro was used to limit the count of bytes to be transferred
in appctx_raw_rcv_buf() by commit ee53d8421f ("MEDIUM: applet: Simplify
a bit API to exchange data with applets") instead of MIN(). It didn't
seem to have any consequences until commit f37ddbeb4b ("MAJOR: cli:
Update the CLI applet to handle its own buffers") that triggers a BUG_ON()
in __b_putblk() when the other side is slow to read, because we're trying
to append a full buffer on top of a non-empty one. A way to reproduce it
is to dump a heavy stick table on the CLI with a screen scrolling.

No backport is needed since this was introduced in 3.0-dev3 and revealed
after dev5 only.
src/applet.c