diff --git a/CHANGELOG.md b/CHANGELOG.md index ae538a2dbe5..cc6daf1589d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,7 +37,8 @@ release. -22.23.1
+22.23.2
+22.23.1
22.23.0
22.22.3
22.22.2
diff --git a/deps/llhttp/.gitignore b/deps/llhttp/.gitignore deleted file mode 100644 index 98438a2cd32..00000000000 --- a/deps/llhttp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -libllhttp.pc diff --git a/deps/llhttp/CMakeLists.txt b/deps/llhttp/CMakeLists.txt index 856f9fd09a9..e4629bf1cd2 100644 --- a/deps/llhttp/CMakeLists.txt +++ b/deps/llhttp/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.25.0) cmake_policy(SET CMP0069 NEW) -project(llhttp VERSION 9.4.2) +project(llhttp VERSION 9.4.3) include(GNUInstallDirs) include(CMakePackageConfigHelpers) diff --git a/deps/llhttp/include/llhttp.h b/deps/llhttp/include/llhttp.h index 5670da52296..da24ef156ef 100644 --- a/deps/llhttp/include/llhttp.h +++ b/deps/llhttp/include/llhttp.h @@ -4,7 +4,7 @@ #define LLHTTP_VERSION_MAJOR 9 #define LLHTTP_VERSION_MINOR 4 -#define LLHTTP_VERSION_PATCH 2 +#define LLHTTP_VERSION_PATCH 3 #ifndef INCLUDE_LLHTTP_ITSELF_H_ #define INCLUDE_LLHTTP_ITSELF_H_ diff --git a/deps/llhttp/src/llhttp.c b/deps/llhttp/src/llhttp.c index cbbb36cd955..73545770337 100644 --- a/deps/llhttp/src/llhttp.c +++ b/deps/llhttp/src/llhttp.c @@ -402,7 +402,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_invoke_test_lenient_flags_17, s_n_llhttp__internal__n_header_value_lenient, s_n_llhttp__internal__n_header_value_relaxed, - s_n_llhttp__internal__n_error_54, + s_n_llhttp__internal__n_error_55, s_n_llhttp__internal__n_header_value_otherwise, s_n_llhttp__internal__n_header_value_connection_token, s_n_llhttp__internal__n_header_value_connection_ws, @@ -410,12 +410,12 @@ enum llparse_state_e { s_n_llhttp__internal__n_header_value_connection_2, s_n_llhttp__internal__n_header_value_connection_3, s_n_llhttp__internal__n_header_value_connection, - s_n_llhttp__internal__n_error_56, s_n_llhttp__internal__n_error_57, + s_n_llhttp__internal__n_error_58, s_n_llhttp__internal__n_header_value_content_length_ws, s_n_llhttp__internal__n_header_value_content_length, + s_n_llhttp__internal__n_error_60, s_n_llhttp__internal__n_error_59, - s_n_llhttp__internal__n_error_58, s_n_llhttp__internal__n_header_value_te_token_ows, s_n_llhttp__internal__n_header_value, s_n_llhttp__internal__n_header_value_te_token, @@ -448,18 +448,18 @@ enum llparse_state_e { s_n_llhttp__internal__n_req_http_complete, s_n_llhttp__internal__n_invoke_load_method_1, s_n_llhttp__internal__n_invoke_llhttp__on_version_complete, - s_n_llhttp__internal__n_error_67, - s_n_llhttp__internal__n_error_74, - s_n_llhttp__internal__n_req_http_minor, + s_n_llhttp__internal__n_error_68, s_n_llhttp__internal__n_error_75, - s_n_llhttp__internal__n_req_http_dot, + s_n_llhttp__internal__n_req_http_minor, s_n_llhttp__internal__n_error_76, + s_n_llhttp__internal__n_req_http_dot, + s_n_llhttp__internal__n_error_77, s_n_llhttp__internal__n_req_http_major, s_n_llhttp__internal__n_span_start_llhttp__on_version, s_n_llhttp__internal__n_req_after_protocol, s_n_llhttp__internal__n_invoke_load_method, s_n_llhttp__internal__n_invoke_llhttp__on_protocol_complete, - s_n_llhttp__internal__n_error_82, + s_n_llhttp__internal__n_error_83, s_n_llhttp__internal__n_req_after_http_start_1, s_n_llhttp__internal__n_invoke_load_method_2, s_n_llhttp__internal__n_invoke_llhttp__on_protocol_complete_1, @@ -576,17 +576,17 @@ enum llparse_state_e { s_n_llhttp__internal__n_res_status_code_digit_1, s_n_llhttp__internal__n_res_after_version, s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1, - s_n_llhttp__internal__n_error_93, - s_n_llhttp__internal__n_error_107, - s_n_llhttp__internal__n_res_http_minor, + s_n_llhttp__internal__n_error_94, s_n_llhttp__internal__n_error_108, - s_n_llhttp__internal__n_res_http_dot, + s_n_llhttp__internal__n_res_http_minor, s_n_llhttp__internal__n_error_109, + s_n_llhttp__internal__n_res_http_dot, + s_n_llhttp__internal__n_error_110, s_n_llhttp__internal__n_res_http_major, s_n_llhttp__internal__n_span_start_llhttp__on_version_1, s_n_llhttp__internal__n_res_after_protocol, s_n_llhttp__internal__n_invoke_llhttp__on_protocol_complete_3, - s_n_llhttp__internal__n_error_115, + s_n_llhttp__internal__n_error_116, s_n_llhttp__internal__n_res_after_start_1, s_n_llhttp__internal__n_res_after_start_2, s_n_llhttp__internal__n_res_after_start_3, @@ -2227,7 +2227,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_header_value_lws; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_54; } } UNREACHABLE; @@ -2238,7 +2238,7 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_header_value_almost_done; default: - goto s_n_llhttp__internal__n_error_51; + goto s_n_llhttp__internal__n_error_52; } UNREACHABLE; } @@ -2400,8 +2400,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_54: - s_n_llhttp__internal__n_error_54: { + case s_n_llhttp__internal__n_error_55: + s_n_llhttp__internal__n_error_55: { state->error = 0xa; state->reason = "Invalid header value char"; state->error_pos = (const char*) p; @@ -2596,8 +2596,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_56: - s_n_llhttp__internal__n_error_56: { + case s_n_llhttp__internal__n_error_57: + s_n_llhttp__internal__n_error_57: { state->error = 0xb; state->reason = "Content-Length overflow"; state->error_pos = (const char*) p; @@ -2605,8 +2605,8 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - case s_n_llhttp__internal__n_error_57: - s_n_llhttp__internal__n_error_57: { + case s_n_llhttp__internal__n_error_58: + s_n_llhttp__internal__n_error_58: { state->error = 0xb; state->reason = "Invalid character in Content-Length"; state->error_pos = (const char*) p; @@ -2702,8 +2702,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_59: - s_n_llhttp__internal__n_error_59: { + case s_n_llhttp__internal__n_error_60: + s_n_llhttp__internal__n_error_60: { state->error = 0xf; state->reason = "Invalid `Transfer-Encoding` header value"; state->error_pos = (const char*) p; @@ -2711,8 +2711,8 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - case s_n_llhttp__internal__n_error_58: - s_n_llhttp__internal__n_error_58: { + case s_n_llhttp__internal__n_error_59: + s_n_llhttp__internal__n_error_59: { state->error = 0xf; state->reason = "Invalid `Transfer-Encoding` header value"; state->error_pos = (const char*) p; @@ -3031,7 +3031,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2; } default: { - goto s_n_llhttp__internal__n_error_62; + goto s_n_llhttp__internal__n_error_63; } } UNREACHABLE; @@ -3415,7 +3415,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_to_http_09; } default: { - goto s_n_llhttp__internal__n_error_63; + goto s_n_llhttp__internal__n_error_64; } } UNREACHABLE; @@ -3439,7 +3439,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1; } default: { - goto s_n_llhttp__internal__n_error_63; + goto s_n_llhttp__internal__n_error_64; } } UNREACHABLE; @@ -3456,13 +3456,13 @@ static llparse_state_t llhttp__internal__run( switch (match_seq.status) { case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_error_72; + goto s_n_llhttp__internal__n_error_73; } case kMatchPause: { return s_n_llhttp__internal__n_req_pri_upgrade; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_73; + goto s_n_llhttp__internal__n_error_74; } } UNREACHABLE; @@ -3498,7 +3498,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_complete_crlf; } default: { - goto s_n_llhttp__internal__n_error_71; + goto s_n_llhttp__internal__n_error_72; } } UNREACHABLE; @@ -3521,12 +3521,12 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_21; default: - goto s_n_llhttp__internal__n_error_68; + goto s_n_llhttp__internal__n_error_69; } UNREACHABLE; } - case s_n_llhttp__internal__n_error_67: - s_n_llhttp__internal__n_error_67: { + case s_n_llhttp__internal__n_error_68: + s_n_llhttp__internal__n_error_68: { state->error = 0x9; state->reason = "Invalid HTTP version"; state->error_pos = (const char*) p; @@ -3534,8 +3534,8 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - case s_n_llhttp__internal__n_error_74: - s_n_llhttp__internal__n_error_74: { + case s_n_llhttp__internal__n_error_75: + s_n_llhttp__internal__n_error_75: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -3605,8 +3605,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_75: - s_n_llhttp__internal__n_error_75: { + case s_n_llhttp__internal__n_error_76: + s_n_llhttp__internal__n_error_76: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -3630,8 +3630,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_76: - s_n_llhttp__internal__n_error_76: { + case s_n_llhttp__internal__n_error_77: + s_n_llhttp__internal__n_error_77: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -3722,7 +3722,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_start_llhttp__on_version; } default: { - goto s_n_llhttp__internal__n_error_77; + goto s_n_llhttp__internal__n_error_78; } } UNREACHABLE; @@ -3803,7 +3803,7 @@ static llparse_state_t llhttp__internal__run( case 46: goto s_n_llhttp__internal__n_req_after_protocol; default: - goto s_n_llhttp__internal__n_error_66; + goto s_n_llhttp__internal__n_error_67; } UNREACHABLE; } @@ -3815,12 +3815,12 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_22; default: - goto s_n_llhttp__internal__n_error_65; + goto s_n_llhttp__internal__n_error_66; } UNREACHABLE; } - case s_n_llhttp__internal__n_error_82: - s_n_llhttp__internal__n_error_82: { + case s_n_llhttp__internal__n_error_83: + s_n_llhttp__internal__n_error_83: { state->error = 0x8; state->reason = "Expected HTTP/, RTSP/ or ICE/"; state->error_pos = (const char*) p; @@ -3857,7 +3857,7 @@ static llparse_state_t llhttp__internal__run( case 33: goto s_n_llhttp__internal__n_req_after_protocol; default: - goto s_n_llhttp__internal__n_error_79; + goto s_n_llhttp__internal__n_error_80; } UNREACHABLE; } @@ -3869,7 +3869,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_23; default: - goto s_n_llhttp__internal__n_error_78; + goto s_n_llhttp__internal__n_error_79; } UNREACHABLE; } @@ -3928,7 +3928,7 @@ static llparse_state_t llhttp__internal__run( case 45: goto s_n_llhttp__internal__n_req_after_protocol; default: - goto s_n_llhttp__internal__n_error_81; + goto s_n_llhttp__internal__n_error_82; } UNREACHABLE; } @@ -3940,7 +3940,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_24; default: - goto s_n_llhttp__internal__n_error_80; + goto s_n_llhttp__internal__n_error_81; } UNREACHABLE; } @@ -4100,7 +4100,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_fragment; } default: { - goto s_n_llhttp__internal__n_error_83; + goto s_n_llhttp__internal__n_error_84; } } UNREACHABLE; @@ -4159,7 +4159,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_stub_query_3; } default: { - goto s_n_llhttp__internal__n_error_84; + goto s_n_llhttp__internal__n_error_85; } } UNREACHABLE; @@ -4196,7 +4196,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_query; } default: { - goto s_n_llhttp__internal__n_error_85; + goto s_n_llhttp__internal__n_error_86; } } UNREACHABLE; @@ -4316,10 +4316,10 @@ static llparse_state_t llhttp__internal__run( } case 8: { p++; - goto s_n_llhttp__internal__n_error_86; + goto s_n_llhttp__internal__n_error_87; } default: { - goto s_n_llhttp__internal__n_error_87; + goto s_n_llhttp__internal__n_error_88; } } UNREACHABLE; @@ -4377,7 +4377,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server_with_at; } default: { - goto s_n_llhttp__internal__n_error_88; + goto s_n_llhttp__internal__n_error_89; } } UNREACHABLE; @@ -4393,7 +4393,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server; } default: { - goto s_n_llhttp__internal__n_error_89; + goto s_n_llhttp__internal__n_error_90; } } UNREACHABLE; @@ -4429,7 +4429,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema_delim_1; } default: { - goto s_n_llhttp__internal__n_error_89; + goto s_n_llhttp__internal__n_error_90; } } UNREACHABLE; @@ -4479,7 +4479,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_90; + goto s_n_llhttp__internal__n_error_91; } } UNREACHABLE; @@ -4519,7 +4519,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_91; + goto s_n_llhttp__internal__n_error_92; } } UNREACHABLE; @@ -4611,7 +4611,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_spaces_before_url; } default: { - goto s_n_llhttp__internal__n_error_92; + goto s_n_llhttp__internal__n_error_93; } } UNREACHABLE; @@ -4624,7 +4624,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_29; default: - goto s_n_llhttp__internal__n_error_111; + goto s_n_llhttp__internal__n_error_112; } UNREACHABLE; } @@ -4640,7 +4640,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4664,7 +4664,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4684,7 +4684,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_3; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4708,7 +4708,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_4; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4732,7 +4732,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_6; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4756,7 +4756,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_8; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4773,7 +4773,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4793,7 +4793,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_9; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4813,7 +4813,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_7; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4837,7 +4837,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_12; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4861,7 +4861,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_13; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4881,7 +4881,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_13; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4897,7 +4897,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_11; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4921,7 +4921,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_14; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4945,7 +4945,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_17; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -4985,7 +4985,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_15; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5009,7 +5009,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_18; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5033,7 +5033,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_20; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5057,7 +5057,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_21; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5077,7 +5077,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_21; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5101,7 +5101,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_23; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5125,7 +5125,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_24; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5149,7 +5149,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_26; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5173,7 +5173,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_28; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5190,7 +5190,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5210,7 +5210,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_29; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5230,7 +5230,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_27; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5254,7 +5254,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_30; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5282,7 +5282,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_30; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5306,7 +5306,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_31; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5330,7 +5330,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_32; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5354,7 +5354,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_35; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5378,7 +5378,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_36; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5398,7 +5398,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_36; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5422,7 +5422,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_37; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5446,7 +5446,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_38; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5470,7 +5470,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_42; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5494,7 +5494,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_43; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5514,7 +5514,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_43; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5530,7 +5530,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_41; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5551,7 +5551,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_40; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5575,7 +5575,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_45; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5596,7 +5596,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5628,7 +5628,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_44; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5652,7 +5652,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_46; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5676,7 +5676,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_49; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5700,7 +5700,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_50; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5724,7 +5724,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_51; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5748,7 +5748,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_52; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5776,7 +5776,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_52; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5792,7 +5792,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_48; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5816,7 +5816,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_55; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5833,7 +5833,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5857,7 +5857,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_58; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5877,7 +5877,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_58; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5897,7 +5897,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_56; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5921,7 +5921,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_59; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5945,7 +5945,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_60; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5969,7 +5969,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_60; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -5993,7 +5993,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_62; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6017,7 +6017,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_63; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6037,7 +6037,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_63; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6061,7 +6061,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_66; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6085,7 +6085,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_68; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6109,7 +6109,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_69; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6129,7 +6129,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_69; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6153,7 +6153,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_after_start_req_70; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6177,7 +6177,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_70; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6193,7 +6193,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_65; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6273,7 +6273,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_after_start_req_64; } default: { - goto s_n_llhttp__internal__n_error_112; + goto s_n_llhttp__internal__n_error_113; } } UNREACHABLE; @@ -6310,7 +6310,7 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; default: - goto s_n_llhttp__internal__n_error_98; + goto s_n_llhttp__internal__n_error_99; } UNREACHABLE; } @@ -6362,7 +6362,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_start_llhttp__on_status; } default: { - goto s_n_llhttp__internal__n_error_99; + goto s_n_llhttp__internal__n_error_100; } } UNREACHABLE; @@ -6424,7 +6424,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; } default: { - goto s_n_llhttp__internal__n_error_101; + goto s_n_llhttp__internal__n_error_102; } } UNREACHABLE; @@ -6486,7 +6486,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; } default: { - goto s_n_llhttp__internal__n_error_103; + goto s_n_llhttp__internal__n_error_104; } } UNREACHABLE; @@ -6548,7 +6548,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_mul_add_status_code; } default: { - goto s_n_llhttp__internal__n_error_105; + goto s_n_llhttp__internal__n_error_106; } } UNREACHABLE; @@ -6564,7 +6564,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_update_status_code; } default: { - goto s_n_llhttp__internal__n_error_106; + goto s_n_llhttp__internal__n_error_107; } } UNREACHABLE; @@ -6577,12 +6577,12 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_28; default: - goto s_n_llhttp__internal__n_error_94; + goto s_n_llhttp__internal__n_error_95; } UNREACHABLE; } - case s_n_llhttp__internal__n_error_93: - s_n_llhttp__internal__n_error_93: { + case s_n_llhttp__internal__n_error_94: + s_n_llhttp__internal__n_error_94: { state->error = 0x9; state->reason = "Invalid HTTP version"; state->error_pos = (const char*) p; @@ -6590,8 +6590,8 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - case s_n_llhttp__internal__n_error_107: - s_n_llhttp__internal__n_error_107: { + case s_n_llhttp__internal__n_error_108: + s_n_llhttp__internal__n_error_108: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -6661,8 +6661,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_108: - s_n_llhttp__internal__n_error_108: { + case s_n_llhttp__internal__n_error_109: + s_n_llhttp__internal__n_error_109: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -6686,8 +6686,8 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - case s_n_llhttp__internal__n_error_109: - s_n_llhttp__internal__n_error_109: { + case s_n_llhttp__internal__n_error_110: + s_n_llhttp__internal__n_error_110: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -6778,7 +6778,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1; } default: { - goto s_n_llhttp__internal__n_error_114; + goto s_n_llhttp__internal__n_error_115; } } UNREACHABLE; @@ -6791,12 +6791,12 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_30; default: - goto s_n_llhttp__internal__n_error_113; + goto s_n_llhttp__internal__n_error_114; } UNREACHABLE; } - case s_n_llhttp__internal__n_error_115: - s_n_llhttp__internal__n_error_115: { + case s_n_llhttp__internal__n_error_116: + s_n_llhttp__internal__n_error_116: { state->error = 0x8; state->reason = "Expected HTTP/, RTSP/ or ICE/"; state->error_pos = (const char*) p; @@ -6938,7 +6938,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_or_res_method_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_110; + goto s_n_llhttp__internal__n_error_111; } } UNREACHABLE; @@ -6969,7 +6969,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_or_res_method_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_110; + goto s_n_llhttp__internal__n_error_111; } } UNREACHABLE; @@ -6989,7 +6989,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_or_res_method_3; } default: { - goto s_n_llhttp__internal__n_error_110; + goto s_n_llhttp__internal__n_error_111; } } UNREACHABLE; @@ -7005,7 +7005,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_or_res_method_1; } default: { - goto s_n_llhttp__internal__n_error_110; + goto s_n_llhttp__internal__n_error_111; } } UNREACHABLE; @@ -8083,7 +8083,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_60: { + s_n_llhttp__internal__n_error_61: { state->error = 0xb; state->reason = "Content-Length can't be present with Transfer-Encoding"; state->error_pos = (const char*) p; @@ -8116,6 +8116,14 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } + s_n_llhttp__internal__n_error_50: { + state->error = 0xf; + state->reason = "Empty Transfer-Encoding"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + UNREACHABLE; + } s_n_llhttp__internal__n_pause_18: { state->error = 0x15; state->reason = "on_header_value_complete pause"; @@ -8202,6 +8210,8 @@ static llparse_state_t llhttp__internal__run( switch (llhttp__internal__c_load_header_state(state, p, endp)) { case 2: goto s_n_llhttp__internal__n_error_49; + case 3: + goto s_n_llhttp__internal__n_error_50; default: goto s_n_llhttp__internal__n_invoke_load_header_state_2; } @@ -8224,7 +8234,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_50: { + s_n_llhttp__internal__n_error_51: { state->error = 0x2; state->reason = "Expected LF after CR"; state->error_pos = (const char*) p; @@ -8237,7 +8247,7 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_header_value_discard_lws; default: - goto s_n_llhttp__internal__n_error_50; + goto s_n_llhttp__internal__n_error_51; } UNREACHABLE; } @@ -8257,7 +8267,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_52: { + s_n_llhttp__internal__n_error_53: { state->error = 0xa; state->reason = "Unexpected whitespace after header value"; state->error_pos = (const char*) p; @@ -8270,7 +8280,7 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_invoke_load_header_state_4; default: - goto s_n_llhttp__internal__n_error_52; + goto s_n_llhttp__internal__n_error_53; } UNREACHABLE; } @@ -8324,7 +8334,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_53: { + s_n_llhttp__internal__n_error_54: { state->error = 0x3; state->reason = "Missing expected LF after header value"; state->error_pos = (const char*) p; @@ -8332,7 +8342,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_51: { + s_n_llhttp__internal__n_error_52: { state->error = 0x19; state->reason = "Missing expected CR after header value"; state->error_pos = (const char*) p; @@ -8416,10 +8426,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_54; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_55; return s_error; } - goto s_n_llhttp__internal__n_error_54; + goto s_n_llhttp__internal__n_error_55; UNREACHABLE; } s_n_llhttp__internal__n_invoke_test_lenient_flags_20: { @@ -8528,10 +8538,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57; return s_error; } - goto s_n_llhttp__internal__n_error_56; + goto s_n_llhttp__internal__n_error_57; UNREACHABLE; } s_n_llhttp__internal__n_invoke_mul_add_content_length_1: { @@ -8560,13 +8570,13 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_58; return s_error; } - goto s_n_llhttp__internal__n_error_57; + goto s_n_llhttp__internal__n_error_58; UNREACHABLE; } - s_n_llhttp__internal__n_error_55: { + s_n_llhttp__internal__n_error_56: { state->error = 0x4; state->reason = "Duplicate Content-Length"; state->error_pos = (const char*) p; @@ -8579,7 +8589,7 @@ static llparse_state_t llhttp__internal__run( case 0: goto s_n_llhttp__internal__n_header_value_content_length; default: - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_56; } UNREACHABLE; } @@ -8593,11 +8603,11 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) (p + 1); - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_59; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_60; return s_error; } p++; - goto s_n_llhttp__internal__n_error_59; + goto s_n_llhttp__internal__n_error_60; UNREACHABLE; } s_n_llhttp__internal__n_invoke_update_header_state_8: { @@ -8617,11 +8627,11 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) (p + 1); - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_58; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_59; return s_error; } p++; - goto s_n_llhttp__internal__n_error_58; + goto s_n_llhttp__internal__n_error_59; UNREACHABLE; } s_n_llhttp__internal__n_invoke_test_lenient_flags_21: { @@ -8722,7 +8732,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_test_lenient_flags_23: { switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) { case 0: - goto s_n_llhttp__internal__n_error_60; + goto s_n_llhttp__internal__n_error_61; default: goto s_n_llhttp__internal__n_header_value_discard_ws; } @@ -8737,7 +8747,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_61: { + s_n_llhttp__internal__n_error_62: { state->error = 0xf; state->reason = "Transfer-Encoding can't be present with Content-Length"; state->error_pos = (const char*) p; @@ -8748,7 +8758,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_test_lenient_flags_24: { switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) { case 0: - goto s_n_llhttp__internal__n_error_61; + goto s_n_llhttp__internal__n_error_62; default: goto s_n_llhttp__internal__n_header_value_discard_ws; } @@ -8813,7 +8823,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; UNREACHABLE; } - s_n_llhttp__internal__n_error_62: { + s_n_llhttp__internal__n_error_63: { state->error = 0xa; state->reason = "Invalid header token"; state->error_pos = (const char*) p; @@ -8916,7 +8926,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_to_http09; UNREACHABLE; } - s_n_llhttp__internal__n_error_63: { + s_n_llhttp__internal__n_error_64: { state->error = 0x7; state->reason = "Expected CRLF"; state->error_pos = (const char*) p; @@ -8940,7 +8950,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_lf_to_http09; UNREACHABLE; } - s_n_llhttp__internal__n_error_72: { + s_n_llhttp__internal__n_error_73: { state->error = 0x17; state->reason = "Pause on PRI/Upgrade"; state->error_pos = (const char*) p; @@ -8948,7 +8958,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_73: { + s_n_llhttp__internal__n_error_74: { state->error = 0x9; state->reason = "Expected HTTP/2 Connection Preface"; state->error_pos = (const char*) p; @@ -8956,7 +8966,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_70: { + s_n_llhttp__internal__n_error_71: { state->error = 0x2; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -8969,11 +8979,11 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_headers_start; default: - goto s_n_llhttp__internal__n_error_70; + goto s_n_llhttp__internal__n_error_71; } UNREACHABLE; } - s_n_llhttp__internal__n_error_69: { + s_n_llhttp__internal__n_error_70: { state->error = 0x9; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -8986,11 +8996,11 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_req_http_complete_crlf; default: - goto s_n_llhttp__internal__n_error_69; + goto s_n_llhttp__internal__n_error_70; } UNREACHABLE; } - s_n_llhttp__internal__n_error_71: { + s_n_llhttp__internal__n_error_72: { state->error = 0x9; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -9006,7 +9016,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_68: { + s_n_llhttp__internal__n_error_69: { state->error = 0x21; state->reason = "`on_version_complete` callback error"; state->error_pos = (const char*) p; @@ -9040,10 +9050,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_67; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_68; return s_error; } - goto s_n_llhttp__internal__n_error_67; + goto s_n_llhttp__internal__n_error_68; UNREACHABLE; } s_n_llhttp__internal__n_invoke_load_http_minor: { @@ -9114,10 +9124,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_74; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_75; return s_error; } - goto s_n_llhttp__internal__n_error_74; + goto s_n_llhttp__internal__n_error_75; UNREACHABLE; } s_n_llhttp__internal__n_span_end_llhttp__on_version_3: { @@ -9130,10 +9140,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_75; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_76; return s_error; } - goto s_n_llhttp__internal__n_error_75; + goto s_n_llhttp__internal__n_error_76; UNREACHABLE; } s_n_llhttp__internal__n_invoke_store_http_major: { @@ -9153,13 +9163,13 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_76; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_77; return s_error; } - goto s_n_llhttp__internal__n_error_76; + goto s_n_llhttp__internal__n_error_77; UNREACHABLE; } - s_n_llhttp__internal__n_error_77: { + s_n_llhttp__internal__n_error_78: { state->error = 0x8; state->reason = "Expected HTTP/, RTSP/ or ICE/"; state->error_pos = (const char*) p; @@ -9167,7 +9177,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_66: { + s_n_llhttp__internal__n_error_67: { state->error = 0x8; state->reason = "Invalid method for HTTP/x.x request"; state->error_pos = (const char*) p; @@ -9183,7 +9193,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_65: { + s_n_llhttp__internal__n_error_66: { state->error = 0x26; state->reason = "`on_protocol_complete` callback error"; state->error_pos = (const char*) p; @@ -9217,13 +9227,13 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_82; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_83; return s_error; } - goto s_n_llhttp__internal__n_error_82; + goto s_n_llhttp__internal__n_error_83; UNREACHABLE; } - s_n_llhttp__internal__n_error_79: { + s_n_llhttp__internal__n_error_80: { state->error = 0x8; state->reason = "Expected SOURCE method for ICE/x.x request"; state->error_pos = (const char*) p; @@ -9239,7 +9249,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_78: { + s_n_llhttp__internal__n_error_79: { state->error = 0x26; state->reason = "`on_protocol_complete` callback error"; state->error_pos = (const char*) p; @@ -9263,7 +9273,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_llhttp__on_protocol_complete_1; UNREACHABLE; } - s_n_llhttp__internal__n_error_81: { + s_n_llhttp__internal__n_error_82: { state->error = 0x8; state->reason = "Invalid method for RTSP/x.x request"; state->error_pos = (const char*) p; @@ -9279,7 +9289,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_80: { + s_n_llhttp__internal__n_error_81: { state->error = 0x26; state->reason = "`on_protocol_complete` callback error"; state->error_pos = (const char*) p; @@ -9311,7 +9321,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_64: { + s_n_llhttp__internal__n_error_65: { state->error = 0x1a; state->reason = "`on_url_complete` callback error"; state->error_pos = (const char*) p; @@ -9326,7 +9336,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_25; default: - goto s_n_llhttp__internal__n_error_64; + goto s_n_llhttp__internal__n_error_65; } UNREACHABLE; } @@ -9394,7 +9404,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_to_http; UNREACHABLE; } - s_n_llhttp__internal__n_error_83: { + s_n_llhttp__internal__n_error_84: { state->error = 0x7; state->reason = "Invalid char in url fragment start"; state->error_pos = (const char*) p; @@ -9450,7 +9460,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_to_http; UNREACHABLE; } - s_n_llhttp__internal__n_error_84: { + s_n_llhttp__internal__n_error_85: { state->error = 0x7; state->reason = "Invalid char in url query"; state->error_pos = (const char*) p; @@ -9458,7 +9468,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_85: { + s_n_llhttp__internal__n_error_86: { state->error = 0x7; state->reason = "Invalid char in url path"; state->error_pos = (const char*) p; @@ -9562,7 +9572,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_to_http; UNREACHABLE; } - s_n_llhttp__internal__n_error_86: { + s_n_llhttp__internal__n_error_87: { state->error = 0x7; state->reason = "Double @ in url"; state->error_pos = (const char*) p; @@ -9570,7 +9580,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_87: { + s_n_llhttp__internal__n_error_88: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -9578,7 +9588,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_88: { + s_n_llhttp__internal__n_error_89: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -9586,7 +9596,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_89: { + s_n_llhttp__internal__n_error_90: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -9594,7 +9604,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_90: { + s_n_llhttp__internal__n_error_91: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -9602,7 +9612,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_91: { + s_n_llhttp__internal__n_error_92: { state->error = 0x7; state->reason = "Unexpected start char in url"; state->error_pos = (const char*) p; @@ -9619,7 +9629,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_92: { + s_n_llhttp__internal__n_error_93: { state->error = 0x6; state->reason = "Expected space after method"; state->error_pos = (const char*) p; @@ -9635,7 +9645,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_111: { + s_n_llhttp__internal__n_error_112: { state->error = 0x20; state->reason = "`on_method_complete` callback error"; state->error_pos = (const char*) p; @@ -9666,7 +9676,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_112: { + s_n_llhttp__internal__n_error_113: { state->error = 0x6; state->reason = "Invalid method encountered"; state->error_pos = (const char*) p; @@ -9674,7 +9684,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_104: { + s_n_llhttp__internal__n_error_105: { state->error = 0xd; state->reason = "Invalid status code"; state->error_pos = (const char*) p; @@ -9682,7 +9692,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_102: { + s_n_llhttp__internal__n_error_103: { state->error = 0xd; state->reason = "Invalid status code"; state->error_pos = (const char*) p; @@ -9690,7 +9700,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_100: { + s_n_llhttp__internal__n_error_101: { state->error = 0xd; state->reason = "Invalid status code"; state->error_pos = (const char*) p; @@ -9706,7 +9716,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_96: { + s_n_llhttp__internal__n_error_97: { state->error = 0x1b; state->reason = "`on_status_complete` callback error"; state->error_pos = (const char*) p; @@ -9721,11 +9731,11 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_27; default: - goto s_n_llhttp__internal__n_error_96; + goto s_n_llhttp__internal__n_error_97; } UNREACHABLE; } - s_n_llhttp__internal__n_error_95: { + s_n_llhttp__internal__n_error_96: { state->error = 0xd; state->reason = "Invalid response status"; state->error_pos = (const char*) p; @@ -9738,11 +9748,11 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; default: - goto s_n_llhttp__internal__n_error_95; + goto s_n_llhttp__internal__n_error_96; } UNREACHABLE; } - s_n_llhttp__internal__n_error_97: { + s_n_llhttp__internal__n_error_98: { state->error = 0x2; state->reason = "Expected LF after CR"; state->error_pos = (const char*) p; @@ -9755,11 +9765,11 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; default: - goto s_n_llhttp__internal__n_error_97; + goto s_n_llhttp__internal__n_error_98; } UNREACHABLE; } - s_n_llhttp__internal__n_error_98: { + s_n_llhttp__internal__n_error_99: { state->error = 0x19; state->reason = "Missing expected CR after response line"; state->error_pos = (const char*) p; @@ -9801,7 +9811,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_res_line_almost_done; UNREACHABLE; } - s_n_llhttp__internal__n_error_99: { + s_n_llhttp__internal__n_error_100: { state->error = 0xd; state->reason = "Invalid response status"; state->error_pos = (const char*) p; @@ -9812,13 +9822,13 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_mul_add_status_code_2: { switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { case 1: - goto s_n_llhttp__internal__n_error_100; + goto s_n_llhttp__internal__n_error_101; default: goto s_n_llhttp__internal__n_res_status_code_otherwise; } UNREACHABLE; } - s_n_llhttp__internal__n_error_101: { + s_n_llhttp__internal__n_error_102: { state->error = 0xd; state->reason = "Invalid status code"; state->error_pos = (const char*) p; @@ -9829,13 +9839,13 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_mul_add_status_code_1: { switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { case 1: - goto s_n_llhttp__internal__n_error_102; + goto s_n_llhttp__internal__n_error_103; default: goto s_n_llhttp__internal__n_res_status_code_digit_3; } UNREACHABLE; } - s_n_llhttp__internal__n_error_103: { + s_n_llhttp__internal__n_error_104: { state->error = 0xd; state->reason = "Invalid status code"; state->error_pos = (const char*) p; @@ -9846,13 +9856,13 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_mul_add_status_code: { switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { case 1: - goto s_n_llhttp__internal__n_error_104; + goto s_n_llhttp__internal__n_error_105; default: goto s_n_llhttp__internal__n_res_status_code_digit_2; } UNREACHABLE; } - s_n_llhttp__internal__n_error_105: { + s_n_llhttp__internal__n_error_106: { state->error = 0xd; state->reason = "Invalid status code"; state->error_pos = (const char*) p; @@ -9867,7 +9877,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_106: { + s_n_llhttp__internal__n_error_107: { state->error = 0x9; state->reason = "Expected space after version"; state->error_pos = (const char*) p; @@ -9883,7 +9893,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_94: { + s_n_llhttp__internal__n_error_95: { state->error = 0x21; state->reason = "`on_version_complete` callback error"; state->error_pos = (const char*) p; @@ -9917,10 +9927,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_93; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_94; return s_error; } - goto s_n_llhttp__internal__n_error_93; + goto s_n_llhttp__internal__n_error_94; UNREACHABLE; } s_n_llhttp__internal__n_invoke_load_http_minor_3: { @@ -9991,10 +10001,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_107; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_108; return s_error; } - goto s_n_llhttp__internal__n_error_107; + goto s_n_llhttp__internal__n_error_108; UNREACHABLE; } s_n_llhttp__internal__n_span_end_llhttp__on_version_8: { @@ -10007,10 +10017,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_108; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_109; return s_error; } - goto s_n_llhttp__internal__n_error_108; + goto s_n_llhttp__internal__n_error_109; UNREACHABLE; } s_n_llhttp__internal__n_invoke_store_http_major_1: { @@ -10030,13 +10040,13 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_109; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_110; return s_error; } - goto s_n_llhttp__internal__n_error_109; + goto s_n_llhttp__internal__n_error_110; UNREACHABLE; } - s_n_llhttp__internal__n_error_114: { + s_n_llhttp__internal__n_error_115: { state->error = 0x8; state->reason = "Expected HTTP/, RTSP/ or ICE/"; state->error_pos = (const char*) p; @@ -10052,7 +10062,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_113: { + s_n_llhttp__internal__n_error_114: { state->error = 0x26; state->reason = "`on_protocol_complete` callback error"; state->error_pos = (const char*) p; @@ -10086,10 +10096,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_115; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_116; return s_error; } - goto s_n_llhttp__internal__n_error_115; + goto s_n_llhttp__internal__n_error_116; UNREACHABLE; } s_n_llhttp__internal__n_pause_26: { @@ -10138,7 +10148,7 @@ static llparse_state_t llhttp__internal__run( } UNREACHABLE; } - s_n_llhttp__internal__n_error_110: { + s_n_llhttp__internal__n_error_111: { state->error = 0x8; state->reason = "Invalid word encountered"; state->error_pos = (const char*) p; @@ -10204,7 +10214,7 @@ static llparse_state_t llhttp__internal__run( return s_error; UNREACHABLE; } - s_n_llhttp__internal__n_error_116: { + s_n_llhttp__internal__n_error_117: { state->error = 0x1f; state->reason = "`on_reset` callback error"; state->error_pos = (const char*) p; @@ -10219,7 +10229,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_32; default: - goto s_n_llhttp__internal__n_error_116; + goto s_n_llhttp__internal__n_error_117; } UNREACHABLE; } diff --git a/deps/undici/src/lib/core/request.js b/deps/undici/src/lib/core/request.js index 4da60667ec2..8e7ecc73084 100644 --- a/deps/undici/src/lib/core/request.js +++ b/deps/undici/src/lib/core/request.js @@ -350,7 +350,13 @@ function processHeader (request, key, val) { } else if (typeof val[i] === 'object') { throw new InvalidArgumentError(`invalid ${key} header`) } else { - arr.push(`${val[i]}`) + // Coerce primitives (and reject unsafe coercions such as functions + // with a crafted toString/Symbol.toPrimitive). + const str = `${val[i]}` + if (!isValidHeaderValue(str)) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + arr.push(str) } } val = arr @@ -361,7 +367,12 @@ function processHeader (request, key, val) { } else if (val === null) { val = '' } else { + // Coerce primitives (and reject unsafe coercions such as functions + // with a crafted toString/Symbol.toPrimitive). val = `${val}` + if (!isValidHeaderValue(val)) { + throw new InvalidArgumentError(`invalid ${key} header`) + } } if (headerName === 'host') { diff --git a/deps/undici/src/lib/dispatcher/client-h1.js b/deps/undici/src/lib/dispatcher/client-h1.js index 9455517a19b..a801ecb3604 100644 --- a/deps/undici/src/lib/dispatcher/client-h1.js +++ b/deps/undici/src/lib/dispatcher/client-h1.js @@ -10,6 +10,7 @@ const { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, RequestAbortedError, + InvalidArgumentError, HeadersTimeoutError, HeadersOverflowError, SocketError, @@ -993,8 +994,16 @@ function writeH1 (client, request) { } body = bodyStream.stream contentLength = bodyStream.length - } else if (util.isBlobLike(body) && request.contentType == null && body.type) { - headers.push('content-type', body.type) + } else if (util.isBlobLike(body) && request.contentType == null) { + const contentType = body.type + if (contentType) { + const contentTypeValue = `${contentType}` + if (!util.isValidHeaderValue(contentTypeValue)) { + util.errorRequest(client, request, new InvalidArgumentError('invalid content-type header')) + return false + } + headers.push('content-type', contentTypeValue) + } } if (body && typeof body.read === 'function') { diff --git a/deps/undici/src/lib/handler/retry-handler.js b/deps/undici/src/lib/handler/retry-handler.js index 5d1ccf00538..c62a2409f3a 100644 --- a/deps/undici/src/lib/handler/retry-handler.js +++ b/deps/undici/src/lib/handler/retry-handler.js @@ -15,6 +15,28 @@ function calculateRetryAfterHeader (retryAfter) { return new Date(retryAfter).getTime() - current } +function validatePartialResponseContentLength (headers, range, statusCode, retryCount) { + const contentLength = headers['content-length'] + if (contentLength == null) { + return null + } + + if (!Number.isFinite(range.start) || !Number.isFinite(range.end)) { + return null + } + + const length = Number(contentLength) + const expectedLength = range.end - range.start + 1 + if (!Number.isFinite(length) || length !== expectedLength) { + return new RequestRetryError('Content-Length mismatch', statusCode, { + headers, + data: { count: retryCount } + }) + } + + return null +} + class RetryHandler { constructor (opts, handlers) { const { retryOptions, ...dispatchOpts } = opts @@ -229,6 +251,12 @@ class RetryHandler { return false } + const contentLengthError = validatePartialResponseContentLength(headers, contentRange, statusCode, this.retryCount) + if (contentLengthError != null) { + this.abort(contentLengthError) + return false + } + const { start, size, end = size - 1 } = contentRange assert(this.start === start, 'content-range mismatch') @@ -252,6 +280,12 @@ class RetryHandler { ) } + const contentLengthError = validatePartialResponseContentLength(headers, range, statusCode, this.retryCount) + if (contentLengthError != null) { + this.abort(contentLengthError) + return false + } + const { start, size, end = size - 1 } = range assert( start != null && Number.isFinite(start), diff --git a/deps/undici/src/lib/llhttp/wasm_build_env.txt b/deps/undici/src/lib/llhttp/wasm_build_env.txt index f8ac034d6e1..eb2202707a5 100644 --- a/deps/undici/src/lib/llhttp/wasm_build_env.txt +++ b/deps/undici/src/lib/llhttp/wasm_build_env.txt @@ -1,12 +1,12 @@ -> undici@6.27.0 prebuild:wasm +> undici@6.28.0 prebuild:wasm > node build/wasm.js --prebuild > docker build --platform=linux/x86_64 -t llhttp_wasm_builder -f /home/runner/work/node/node/deps/undici/src/build/Dockerfile /home/runner/work/node/node/deps/undici/src -> undici@6.27.0 build:wasm +> undici@6.28.0 build:wasm > node build/wasm.js --docker > docker run --rm -t --platform=linux/x86_64 --user 1001:1001 --mount type=bind,source=/home/runner/work/node/node/deps/undici/src/lib/llhttp,target=/home/node/undici/lib/llhttp llhttp_wasm_builder node build/wasm.js diff --git a/deps/undici/src/lib/web/cookies/util.js b/deps/undici/src/lib/web/cookies/util.js index 254f5419e90..ca408e153ab 100644 --- a/deps/undici/src/lib/web/cookies/util.js +++ b/deps/undici/src/lib/web/cookies/util.js @@ -105,7 +105,7 @@ function validateCookiePath (path) { if ( code < 0x20 || // exclude CTLs (0-31) - code === 0x7F || // DEL + code > 0x7E || // exclude DEL and non-ascii code === 0x3B // ; ) { throw new Error('Invalid cookie path') @@ -114,16 +114,80 @@ function validateCookiePath (path) { } /** - * I have no idea why these values aren't allowed to be honest, - * but Deno tests these. - Khafra + * ::= | + * + * ::= any one of the 52 alphabetic characters A through Z in + * upper case and a through z in lower case + * + * ::= any one of the ten digits 0 through 9r + * + * @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5 + * @param {number} code + */ +function isLetterOrDigit (code) { + return ( + (code >= 0x30 && code <= 0x39) || // 0-9 + (code >= 0x41 && code <= 0x5A) || // A-Z + (code >= 0x61 && code <= 0x7A) // a-z + ) +} + +/** + * Validates a cookie domain against the "preferred name syntax". + * + * ::= | " " + * ::=