Skip to content

Commit

Permalink
Ensure the HTTP protion of the protocol string is upper case (#7904)
Browse files Browse the repository at this point in the history
  • Loading branch information
shinrich authored Jun 1, 2021
1 parent 35994e4 commit 68edae7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
19 changes: 9 additions & 10 deletions proxy/hdrs/HTTP.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1056,19 +1056,19 @@ http_parser_parse_req(HTTPParser *parser, HdrHeap *heap, HTTPHdrImpl *hh, const
}
goto parse_url;
parse_version4:
if ((*cur != 'P') && (*cur != 'p')) {
if (*cur != 'P') {
goto parse_url;
}
GETPREV(parse_url);
if ((*cur != 'T') && (*cur != 't')) {
if (*cur != 'T') {
goto parse_url;
}
GETPREV(parse_url);
if ((*cur != 'T') && (*cur != 't')) {
if (*cur != 'T') {
goto parse_url;
}
GETPREV(parse_url);
if ((*cur != 'H') && (*cur != 'h')) {
if (*cur != 'H') {
goto parse_url;
}
version_start = cur;
Expand Down Expand Up @@ -1318,19 +1318,19 @@ http_parser_parse_resp(HTTPParser *parser, HdrHeap *heap, HTTPHdrImpl *hh, const
reason_end = nullptr;

version_start = cur = line_start;
if ((*cur != 'H') && (*cur != 'h')) {
if (*cur != 'H') {
goto eoh;
}
GETNEXT(eoh);
if ((*cur != 'T') && (*cur != 't')) {
if (*cur != 'T') {
goto eoh;
}
GETNEXT(eoh);
if ((*cur != 'T') && (*cur != 't')) {
if (*cur != 'T') {
goto eoh;
}
GETNEXT(eoh);
if ((*cur != 'P') && (*cur != 'p')) {
if (*cur != 'P') {
goto eoh;
}
GETNEXT(eoh);
Expand Down Expand Up @@ -1459,8 +1459,7 @@ http_parse_version(const char *start, const char *end)
return HTTP_0_9;
}

if (((start[0] == 'H') || (start[0] == 'h')) && ((start[1] == 'T') || (start[1] == 't')) &&
((start[2] == 'T') || (start[2] == 't')) && ((start[3] == 'P') || (start[3] == 'p')) && (start[4] == '/')) {
if ((start[0] == 'H') && (start[1] == 'T') && (start[2] == 'T') && (start[3] == 'P') && (start[4] == '/')) {
start += 5;

maj = 0;
Expand Down
3 changes: 2 additions & 1 deletion proxy/hdrs/unit_tests/test_Hdrs.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ TEST_CASE("HdrTestHttpParse", "[proxy][hdrtest]")
int expected_result;
int expected_bytes_consumed;
};
static const std::array<Test, 20> tests = {{
static const std::array<Test, 21> tests = {{
{"GET /index.html HTTP/1.0\r\n", PARSE_RESULT_DONE, 26},
{"GET /index.html HTTP/1.0\r\n\r\n***BODY****", PARSE_RESULT_DONE, 28},
{"GET /index.html HTTP/1.0\r\nUser-Agent: foobar\r\n\r\n***BODY****", PARSE_RESULT_DONE, 48},
Expand All @@ -65,6 +65,7 @@ TEST_CASE("HdrTestHttpParse", "[proxy][hdrtest]")
{"GET /index.html HTTP/1.0\nUser-Agent: foobar\nBoo: foo\n", PARSE_RESULT_DONE, 53},
{"GET /index.html HTTP/1.0\r\nUser-Agent: foobar\r\n", PARSE_RESULT_DONE, 46},
{"GET /index.html HTTP/1.0\r\n", PARSE_RESULT_DONE, 26},
{"GET /index.html hTTP/1.0\r\n", PARSE_RESULT_ERROR, 26},
{"", PARSE_RESULT_ERROR, 0},
}};

Expand Down

0 comments on commit 68edae7

Please sign in to comment.