[nginx] HTTP/3: fixed handling of zero-length literal field line.

Sergey Kandaurov pluknet at nginx.com
Wed May 29 14:57:57 UTC 2024


details:   https://hg.nginx.org/nginx/rev/ebdeca3b392b
branches:  
changeset: 9255:ebdeca3b392b
user:      Sergey Kandaurov <pluknet at nginx.com>
date:      Tue May 28 17:20:45 2024 +0400
description:
HTTP/3: fixed handling of zero-length literal field line.

Previously, st->value was passed with NULL data pointer to header handlers.

diffstat:

 src/http/v3/ngx_http_v3_parse.c |  3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diffs (27 lines):

diff -r 55a6a45b7fa9 -r ebdeca3b392b src/http/v3/ngx_http_v3_parse.c
--- a/src/http/v3/ngx_http_v3_parse.c	Tue May 28 17:19:21 2024 +0400
+++ b/src/http/v3/ngx_http_v3_parse.c	Tue May 28 17:20:45 2024 +0400
@@ -810,6 +810,7 @@ ngx_http_v3_parse_field_lri(ngx_connecti
 
             st->literal.length = st->pint.value;
             if (st->literal.length == 0) {
+                st->value.data = (u_char *) "";
                 goto done;
             }
 
@@ -932,6 +933,7 @@ ngx_http_v3_parse_field_l(ngx_connection
 
             st->literal.length = st->pint.value;
             if (st->literal.length == 0) {
+                st->value.data = (u_char *) "";
                 goto done;
             }
 
@@ -1072,6 +1074,7 @@ ngx_http_v3_parse_field_lpbi(ngx_connect
 
             st->literal.length = st->pint.value;
             if (st->literal.length == 0) {
+                st->value.data = (u_char *) "";
                 goto done;
             }
 


More information about the nginx-devel mailing list