Reset url_mark on s_req_host

add a new scan test. Report and fix by Master Becker.
event_stream
Ryan Dahl 15 years ago
parent 4afe80a44e
commit 03b8eaa5f8

@ -324,6 +324,7 @@ size_t http_parser_execute (http_parser *parser,
if (state == s_req_path || state == s_req_schema || state == s_req_schema_slash if (state == s_req_path || state == s_req_schema || state == s_req_schema_slash
|| state == s_req_schema_slash_slash || state == s_req_port || state == s_req_schema_slash_slash || state == s_req_port
|| state == s_req_query_string_start || state == s_req_query_string || state == s_req_query_string_start || state == s_req_query_string
|| state == s_req_host
|| state == s_req_fragment_start || state == s_req_fragment) || state == s_req_fragment_start || state == s_req_fragment)
url_mark = data; url_mark = data;

@ -1675,24 +1675,30 @@ main (void)
} }
} }
printf("request scan 1/3 "); printf("request scan 1/4 ");
test_scan( &requests[GET_NO_HEADERS_NO_BODY] test_scan( &requests[GET_NO_HEADERS_NO_BODY]
, &requests[GET_ONE_HEADER_NO_BODY] , &requests[GET_ONE_HEADER_NO_BODY]
, &requests[GET_NO_HEADERS_NO_BODY] , &requests[GET_NO_HEADERS_NO_BODY]
); );
printf("request scan 2/3 "); printf("request scan 2/4 ");
test_scan( &requests[POST_CHUNKED_ALL_YOUR_BASE] test_scan( &requests[POST_CHUNKED_ALL_YOUR_BASE]
, &requests[POST_IDENTITY_BODY_WORLD] , &requests[POST_IDENTITY_BODY_WORLD]
, &requests[GET_FUNKY_CONTENT_LENGTH] , &requests[GET_FUNKY_CONTENT_LENGTH]
); );
printf("request scan 3/3 "); printf("request scan 3/4 ");
test_scan( &requests[TWO_CHUNKS_MULT_ZERO_END] test_scan( &requests[TWO_CHUNKS_MULT_ZERO_END]
, &requests[CHUNKED_W_TRAILING_HEADERS] , &requests[CHUNKED_W_TRAILING_HEADERS]
, &requests[CHUNKED_W_BULLSHIT_AFTER_LENGTH] , &requests[CHUNKED_W_BULLSHIT_AFTER_LENGTH]
); );
printf("request scan 4/4 ");
test_scan( &requests[QUERY_URL_WITH_QUESTION_MARK_GET]
, &requests[PREFIX_NEWLINE_GET ]
, &requests[CONNECT_REQUEST]
);
puts("requests okay"); puts("requests okay");
return 0; return 0;

Loading…
Cancel
Save