mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-10-17 10:59:39 +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:
1 parent
a61f2b89be
commit
f44ab9b3da
2 files changed
+51
-23
No files matched your search
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user