Le 05/11/2025 à 10:28 AM, Maximilian Moehl a écrit :
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.
---
  src/h1_htx.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/h1_htx.c b/src/h1_htx.c
index 1e67b63c39..fcef42ac00 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;

Good catch ! The patch was merged. I added info about backports.
Thanks !

--
Christopher Faulet



Reply via email to