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