mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2025-05-15 01:08:27 +00:00
Fix range parser when parsing too many ranges (#1812)
* Implement range parser without std::regex * Add test cases for invalid ranges
This commit is contained in:
parent
a61f2b89be
commit
f44ab9b3da
2 changed files with 51 additions and 23 deletions
19
test/test.cc
19
test/test.cc
|
@ -352,6 +352,25 @@ TEST(ParseHeaderValueTest, Range) {
|
|||
EXPECT_EQ(300u, ranges[2].first);
|
||||
EXPECT_EQ(400u, ranges[2].second);
|
||||
}
|
||||
|
||||
{
|
||||
Ranges ranges;
|
||||
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=0", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=-", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes= ", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=,", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=,,", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=,,,", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=a-b", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=1-0", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=0--1", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=0- 1", ranges));
|
||||
EXPECT_FALSE(detail::parse_range_header("bytes=0 -1", ranges));
|
||||
EXPECT_TRUE(ranges.empty());
|
||||
}
|
||||
}
|
||||
|
||||
TEST(ParseAcceptEncoding1, AcceptEncoding) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue