]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: htx: Don't count delta twice when block value is replaced
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 13 Apr 2026 16:58:35 +0000 (18:58 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 14 Apr 2026 12:07:21 +0000 (14:07 +0200)
A regression was introduced by the commit a8887e55a ("BUG/MEDIUM: htx: Fix
function used to change part of a block value when defrag").

When a block value was replaced and a defragmentation was performed, the
delta between the old value and the new one was counted twice. htx_defrag()
already is responsible to set the new size for the HTX message. So it must
not be performed in htx_replace_blk_value().

This patch must be backported with the commit above. So theorically to all
stable versions.

src/htx.c

index 6ace1d3e8d7c175a7ec32946e3326a9cb9d86573..295e4617497c806980e2f37610fa14ed93a1d948 100644 (file)
--- a/src/htx.c
+++ b/src/htx.c
@@ -718,8 +718,6 @@ struct htx_blk *htx_replace_blk_value(struct htx *htx, struct htx_blk *blk,
                /* finally copy data */
                htx_memcpy(htx_get_blk_ptr(htx, blk), b_orig(chunk), b_data(chunk));
                free_trash_chunk(chunk);
-
-               htx->data += delta;
        }
        return blk;
 }