changeset 8789:3509b9dcfb47 quic

HTTP/3: fixed parsing encoder insertions with empty header value. 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.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 01 Jun 2021 11:41:38 +0300
parents f0882db8c8d4
children ac0398da8f23
files src/http/v3/ngx_http_v3_parse.c
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/v3/ngx_http_v3_parse.c
+++ b/src/http/v3/ngx_http_v3_parse.c
@@ -1366,6 +1366,7 @@ ngx_http_v3_parse_header_inr(ngx_connect
 
         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_connec
 
         st->literal.length = st->pint.value;
         if (st->literal.length == 0) {
+            st->value.len = 0;
             goto done;
         }