Skip to content

Commit 536bce0

Browse files
Merge pull request #4833 from peterschrammel/number-range-error-test
Handle missing lower bound in number range
2 parents b6ff03d + cb087c2 commit 536bce0

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/util/format_number_range.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ std::vector<unsigned> parse_number_range(const std::string &number_range)
134134
}
135135
else if(c == '-')
136136
{
137+
if(!number.has_value())
138+
{
139+
throw deserialization_exceptiont(
140+
"lower bound missing in number range '" + number_range + "'");
141+
}
137142
begin_range = number;
138143
number = {};
139144
}

unit/util/format_number_range.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ TEST_CASE(
6565
REQUIRE_THROWS_AS(parse_number_range(""), deserialization_exceptiont);
6666
REQUIRE_THROWS_AS(parse_number_range(","), deserialization_exceptiont);
6767
REQUIRE_THROWS_AS(parse_number_range("1,"), deserialization_exceptiont);
68+
REQUIRE_THROWS_AS(parse_number_range("-5"), deserialization_exceptiont);
6869
REQUIRE_THROWS_AS(parse_number_range("0,1-"), deserialization_exceptiont);
6970
REQUIRE_THROWS_AS(parse_number_range("1, 2"), deserialization_exceptiont);
7071
REQUIRE_THROWS_AS(parse_number_range("4-2"), deserialization_exceptiont);

0 commit comments

Comments
 (0)