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;
--
2.51.2