From 20d763250871483711fd74a3b0153c6fa6c5364f Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> Date: Wed, 6 Sep 2017 23:25:48 +0900 Subject: [PATCH] http-parser: HTTP/0.9 does not have header fields --- third-party/http-parser/http_parser.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/third-party/http-parser/http_parser.c b/third-party/http-parser/http_parser.c index e315163f..0cc16cb6 100644 --- a/third-party/http-parser/http_parser.c +++ b/third-party/http-parser/http_parser.c @@ -1070,10 +1070,13 @@ reexecute: case LF: parser->http_major = 0; parser->http_minor = 9; - UPDATE_STATE((ch == CR) ? - s_req_line_almost_done : - s_header_field_start); CALLBACK_DATA(url); + if (ch == CR) { + UPDATE_STATE(s_req_line_almost_done); + } else { + UPDATE_STATE(s_headers_almost_done); + REEXECUTE(); + } break; default: UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); @@ -1174,7 +1177,12 @@ reexecute: goto error; } - UPDATE_STATE(s_header_field_start); + if (parser->http_major == 0) { + UPDATE_STATE(s_headers_almost_done); + REEXECUTE(); + } else { + UPDATE_STATE(s_header_field_start); + } break; } -- GitLab