BUG/MEDIUM: h1_htx: Remove reverved block on error during contig chunks parsing

In h1_parse_full_contig_chunks(), we first try to reserve the bigger HTX
DATA block as possible. It is ajusted at the end of chunks parsing or
removed if no data was copied. However, it should also be removed when a
parsing error is triggered. It could be an issue for http health checks and
haterm to properly handle errors.

This patch should be backported as far as 2.6.
This commit is contained in:
Christopher Faulet 2026-05-05 15:05:57 +02:00
parent 9095785203
commit 4af4feed33

View File

@ -846,6 +846,7 @@ static size_t h1_parse_full_contig_chunks(struct h1m *h1m, struct htx **dsthtx,
parsing_error:
(*dsthtx)->flags |= HTX_FL_PARSING_ERROR;
htx_remove_blk(*dsthtx, htxret.blk);
h1m->err_state = h1m->state;
h1m->err_pos = ofs + end + ridx - start;
return 0;