BUG/MEDIUM: cache/filters: Fix loop on HTX blocks caching the response payload
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 2 Mar 2020 15:19:50 +0000 (16:19 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Mar 2020 14:52:57 +0000 (16:52 +0200)
commitcf004eb5118ed4075537457dd993e578532df7ec
treeda842c833e51fe2ed8d55aac0d8114689dc79481
parent607e84e30fefb84823c6c30958770aedab5cca02
BUG/MEDIUM: cache/filters: Fix loop on HTX blocks caching the response payload

During the payload filtering, the offset is relative to the head of the HTX
message and not its first index. This index is the position of the first block
to (re)start the HTTP analysis. It must be used during HTTP analysis but not
during the payload forwarding.

So, from the cache point of view, when we loop on the HTX blocks to cache the
response payload, we must start from the head of the HTX message. To ease the
loop, we use the function htx_find_offset().

This patch must be backported as far as 2.0. It depends on the commit "MINOR:
htx: Add a function to return a block at a specific an offset". So this one must
be backported first.

(cherry picked from commit 497c7595588371e8ac85c322825455d7c7d4e407)
Signed-off-by: Willy Tarreau <w@1wt.eu>
src/cache.c