aboutsummaryrefslogtreecommitdiff
path: root/src/http/v3/ngx_http_v3_parse.c
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2021-04-22 13:49:18 +0300
committerVladimir Homutov <vl@nginx.com>2021-04-22 13:49:18 +0300
commita8acca865bc63efd0ae99284af37ed6bb246923b (patch)
treef9d3be226862fdfa2066adbca04d570903985c17 /src/http/v3/ngx_http_v3_parse.c
parent013880bbdaa220aa245a327f16b5bf5a608bfd98 (diff)
downloadnginx-a8acca865bc63efd0ae99284af37ed6bb246923b.tar.gz
nginx-a8acca865bc63efd0ae99284af37ed6bb246923b.zip
HTTP/3: adjusted control stream parsing.
7.2.1: If a DATA frame is received on a control stream, the recipient MUST respond with a connection error of type H3_FRAME_UNEXPECTED; 7.2.2: If a HEADERS frame is received on a control stream, the recipient MUST respond with a connection error (Section 8) of type H3_FRAME_UNEXPECTED.
Diffstat (limited to 'src/http/v3/ngx_http_v3_parse.c')
-rw-r--r--src/http/v3/ngx_http_v3_parse.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/http/v3/ngx_http_v3_parse.c b/src/http/v3/ngx_http_v3_parse.c
index b7cf242ba..18255a677 100644
--- a/src/http/v3/ngx_http_v3_parse.c
+++ b/src/http/v3/ngx_http_v3_parse.c
@@ -1069,6 +1069,10 @@ ngx_http_v3_parse_control(ngx_connection_t *c, void *data, u_char ch)
st->state = sw_max_push_id;
break;
+ case NGX_HTTP_V3_FRAME_DATA:
+ case NGX_HTTP_V3_FRAME_HEADERS:
+ return NGX_HTTP_V3_ERR_FRAME_UNEXPECTED;
+
default:
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0,
"http3 parse skip unknown frame");