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



Reply via email to