]> git.ipfire.org Git - thirdparty/haproxy.git/commit
DEBUG: cache: Update underlying buffer when loading HTX message in cache applet
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 7 Mar 2022 15:44:30 +0000 (16:44 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 8 Mar 2022 17:29:20 +0000 (18:29 +0100)
commit8b1eed16d0f63227a0026f4253c12c1cf68f2f0c
tree5eed7ecf6699f0c464d3482a3da7d40d9b422fe0
parente9382e0afe263c06fe4e7b1839e2c482b89ed42c
DEBUG: cache: Update underlying buffer when loading HTX message in cache applet

In the I/O handler of the cache applet, we must update the underlying buffer
when the HTX message is loaded, using htx_from_buf() function instead of
htxbuf(). It is important because the applet will update the message by
adding new HTX blocks. This way, the state of the underlying buffer remains
consistant with the state of the HTX message.

It is especially important if HAProxy is compiled with "DEBUG_STRICT=2"
mode. Without this patch, channel_add_input() call crashed if the channel
was empty at the begining of the I/O handler.

Note that it is more a build/debug issue than a bug. But this patch may
prevent future bugs. For now it is safe because htx_to_buf() function is
systematically called, updating accordingly the underlying buffer.

This patch may be backported as far as 2.0.
src/cache.c