Commit 77a8b1ac authored by Dag Haavi Finstad's avatar Dag Haavi Finstad

Return PROTOCOL_ERROR for END_STREAM + content-length

parent 25897d36
......@@ -531,6 +531,8 @@ h2_end_headers(struct worker *wrk, struct h2_sess *h2,
req->req_body_status = REQ_BODY_WITH_LEN;
} else {
assert (req->req_body_status == REQ_BODY_NONE);
if (http_GetContentLength(req->http) > 0)
return (H2CE_PROTOCOL_ERROR); //rfc7540,l,1838,1840
}
req->req_step = R_STP_TRANSPORT;
......
......@@ -45,6 +45,27 @@ client c1 {
} -run
} -run
client c2 {
stream 1 {
txreq -hdr "content-length" "23"
} -run
stream 0 {
rxgoaway
expect goaway.err == PROTOCOL_ERROR
expect goaway.laststream == 1
} -run
} -run
# Allow content-length: 0
client c2 {
stream 1 {
txreq -hdr "content-length" "0"
rxresp
expect resp.status == 200
} -run
} -run
varnish v1 -vsl_catchup
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment