]> git.kaiwu.me - nginx.git/commitdiff
Disabled handling of headers without a colon.
authorMaxim Dounin <mdounin@mdounin.ru>
Wed, 8 May 2024 20:00:07 +0000 (23:00 +0300)
committerVadimZhestikov <108960056+VadimZhestikov@users.noreply.github.com>
Wed, 28 Oct 2026 17:08:44 +0000 (10:08 -0700)
Starting with nginx 0.1.29 (509:9b8c906f6e63), header names not followed
by a colon and a value were allowed.  Such headers were interpreted as
headers with an empty value.  With this change, such headers are
unconditionally rejected.

Requested by Maksim Yevmenkin.

Closes: https://github.com/nginx/nginx/issues/1499
Signed-off-by: Vadim Zhestikov <v.zhestikov@f5.com>
Origin: <https://freenginx.org/hg/nginx/rev/9a5e2296c1be>

src/http/ngx_http_parse.c

index e547d0fdb8f450b4817cc8cb24005dd65061b570..1fa40cc6c3c7fa5b0ec9f33a7a8c6588e3addac6 100644 (file)
@@ -989,21 +989,6 @@ ngx_http_parse_header_line(ngx_http_request_t *r, ngx_buf_t *b,
                 break;
             }
 
-            if (ch == CR) {
-                r->header_name_end = p;
-                r->header_start = p;
-                r->header_end = p;
-                state = sw_almost_done;
-                break;
-            }
-
-            if (ch == LF) {
-                r->header_name_end = p;
-                r->header_start = p;
-                r->header_end = p;
-                goto done;
-            }
-
             /* IIS may send the duplicate "HTTP/1.1 ..." lines */
             if (ch == '/'
                 && r->upstream