mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 07:07:04 +02:00
BUG/MINOR: h1: Fail to parse empty transfer coding names
Empty transfer coding names, inside a comma-separated list, are already rejected. But it is only by chance. Today, it is detected as an unknown coding names (not "chunked" concretly). Then, it is handled by the H1 multiplexer as an error and a 422-Unprocessable-Content response is returned. So, the error is properly detected in this case, but it is not accurate. A 400-bad-request response must be returned instead. Then, it is better to catch the error during the header parsing. It is the purpose of this patch. This patch should be backported as far as 2.6.
This commit is contained in:
parent
89bdd8b62a
commit
b8b0102760
7
src/h1.c
7
src/h1.c
@ -147,7 +147,12 @@ int h1_parse_xfer_enc_header(struct h1m *h1m, struct ist value)
|
|||||||
word.len--;
|
word.len--;
|
||||||
|
|
||||||
h1m->flags &= ~H1_MF_CHNK;
|
h1m->flags &= ~H1_MF_CHNK;
|
||||||
if (isteqi(word, ist("chunked"))) {
|
|
||||||
|
/* empty values are forbidden */
|
||||||
|
if (!word.len)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
else if (isteqi(word, ist("chunked"))) {
|
||||||
if (h1m->flags & H1_MF_TE_CHUNKED) {
|
if (h1m->flags & H1_MF_TE_CHUNKED) {
|
||||||
/* cf RFC7230#3.3.1 : A sender MUST NOT apply
|
/* cf RFC7230#3.3.1 : A sender MUST NOT apply
|
||||||
* chunked more than once to a message body
|
* chunked more than once to a message body
|
||||||
|
Loading…
Reference in New Issue
Block a user