]> git.kaiwu.me - nginx.git/commitdiff
HTTP/3: fixed parsing encoder insertions with empty header value.
authorSergey Kandaurov <pluknet@nginx.com>
Tue, 1 Jun 2021 08:41:38 +0000 (11:41 +0300)
committerSergey Kandaurov <pluknet@nginx.com>
Tue, 1 Jun 2021 08:41:38 +0000 (11:41 +0300)
When starting processing a new encoder instruction, the header state is not
memzero'ed because generally it's burdensome.  If the header value is empty,
this resulted in inserting a stale value left from the previous instruction.

Based on a patch by Zhiyong Sun.

src/http/v3/ngx_http_v3_parse.c

index fcb39b209260e26c53e27aa441d418011e03e9e3..40366e665d510f7b48d520bdbf737e95327cab46 100644 (file)
@@ -1366,6 +1366,7 @@ ngx_http_v3_parse_header_inr(ngx_connection_t *c,
 
         st->literal.length = st->pint.value;
         if (st->literal.length == 0) {
+            st->value.len = 0;
             goto done;
         }
 
@@ -1470,6 +1471,7 @@ ngx_http_v3_parse_header_iwnr(ngx_connection_t *c,
 
         st->literal.length = st->pint.value;
         if (st->literal.length == 0) {
+            st->value.len = 0;
             goto done;
         }