From: Maximilian Moehl Date: Wed, 5 Nov 2025 09:28:12 +0000 (+0100) Subject: BUG/MEDIUM: mux-h1: fix 414 / 431 status code reporting X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0799fd10729be894185faeb3e31333a5594eaebb;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: mux-h1: fix 414 / 431 status code reporting The more detailed status code reporting introduced with bc967758a2 is checking against the error state to determine whether it is a too long URL or too large headers. The check used always returns true which results in a 414 as the error state is only set at a later point. This commit adjusts the check to use the current state instead to return the intended status code. This patch must be backported as far as 3.1. --- diff --git a/src/h1_htx.c b/src/h1_htx.c index 1e67b63c3..fcef42ac0 100644 --- a/src/h1_htx.c +++ b/src/h1_htx.c @@ -397,7 +397,7 @@ int h1_parse_msg_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct htx *dsthtx, goto error; if (!ret && !ofs && !buf_room_for_htx_data(srcbuf)) { if (!(h1m->flags & H1_MF_RESP)) - h1m->err_code = (h1m->err_state < H1_MSG_HDR_FIRST) ? 414: 431; + h1m->err_code = (h1m->state < H1_MSG_HDR_FIRST) ? 414: 431; goto error; } goto end;