mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
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 commitee53d8421f
("MEDIUM: applet: Simplify a bit API to exchange data with applets") instead of MIN(). It didn't seem to have any consequences until commitf37ddbeb4b
("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.
This commit is contained in:
parent
ed45d13321
commit
1ea18fa8a3
@ -516,7 +516,7 @@ size_t appctx_htx_rcv_buf(struct appctx *appctx, struct buffer *buf, size_t coun
|
||||
|
||||
size_t appctx_raw_rcv_buf(struct appctx *appctx, struct buffer *buf, size_t count, unsigned int flags)
|
||||
{
|
||||
return b_xfer(buf, &appctx->outbuf, MAX(count, b_data(&appctx->outbuf)));
|
||||
return b_xfer(buf, &appctx->outbuf, MIN(count, b_data(&appctx->outbuf)));
|
||||
}
|
||||
|
||||
size_t appctx_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count, unsigned int flags)
|
||||
|
Loading…
Reference in New Issue
Block a user