changeset 8649:5a92523e50d3 quic

HTTP/3: null-terminate empty header value. Header value returned from the HTTP parser is expected to be null-terminated or have a spare byte after the value bytes. When an empty header value was passed by client in a literal header representation, neither was true. This could result in segfault. The fix is to assign a literal empty null-terminated string in this case. Thanks to Andrey Kolyshkin.
author Roman Arutyunyan <arut@nginx.com>
date Tue, 17 Nov 2020 20:54:10 +0000
parents b80d9179ba2a
children 9dce2978e4fd
files src/http/v3/ngx_http_v3_parse.c
diffstat 1 files changed, 1 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
@@ -746,6 +746,7 @@ ngx_http_v3_parse_header_l(ngx_connectio
 
         st->literal.length = st->pint.value;
         if (st->literal.length == 0) {
+            st->value.data = (u_char *) "";
             goto done;
         }