BUG/MINOR: htx: Stop a header or a start line lookup on the first EOH or EOM

Because several messages can be stored in the HTX structure, it is important to
restrict searches to the current message.
This commit is contained in:
Christopher Faulet 2018-11-28 16:55:12 +01:00 committed by Willy Tarreau
parent 72b6273b5b
commit 573fe735f4

View File

@ -47,7 +47,8 @@ union h1_sl http_find_stline(const struct htx *htx)
sl.st.r = ist2(htx_sl->st.l + htx_sl->st.v_len + htx_sl->st.c_len, htx_sl->st.r_len); sl.st.r = ist2(htx_sl->st.l + htx_sl->st.v_len + htx_sl->st.c_len, htx_sl->st.r_len);
return sl; return sl;
} }
if (type == HTX_BLK_EOM)
if (type == HTX_BLK_EOH || type == HTX_BLK_EOM)
break; break;
} }
@ -107,6 +108,8 @@ int http_find_header(const struct htx *htx, const struct ist name,
rescan_hdr: rescan_hdr:
blk = htx_get_blk(htx, pos); blk = htx_get_blk(htx, pos);
type = htx_get_blk_type(blk); type = htx_get_blk_type(blk);
if (type == HTX_BLK_EOH || type == HTX_BLK_EOM)
break;
if (type != HTX_BLK_HDR) if (type != HTX_BLK_HDR)
goto next_blk; goto next_blk;
if (name.len) { if (name.len) {