added missing overflow check for #329
This commit is contained in:
parent
67b9f1936d
commit
d91067220f
4 changed files with 21 additions and 1 deletions
|
@ -516,7 +516,7 @@ To compile and run the tests, you need to execute
|
||||||
$ make check
|
$ make check
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
All tests passed (8905168 assertions in 35 test cases)
|
All tests passed (8905169 assertions in 35 test cases)
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can use [https://cmake.org](CMake) and run
|
Alternatively, you can use [https://cmake.org](CMake) and run
|
||||||
|
|
|
@ -8960,6 +8960,13 @@ basic_json_parser_63:
|
||||||
{
|
{
|
||||||
// parse with strtod
|
// parse with strtod
|
||||||
result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
|
result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
|
||||||
|
|
||||||
|
// replace infinity and NAN by null
|
||||||
|
if (not std::isfinite(result.m_value.number_float))
|
||||||
|
{
|
||||||
|
type = value_t::null;
|
||||||
|
result.m_value = basic_json::json_value();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// save the type
|
// save the type
|
||||||
|
|
|
@ -8257,6 +8257,13 @@ class basic_json
|
||||||
{
|
{
|
||||||
// parse with strtod
|
// parse with strtod
|
||||||
result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
|
result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
|
||||||
|
|
||||||
|
// replace infinity and NAN by null
|
||||||
|
if (not std::isfinite(result.m_value.number_float))
|
||||||
|
{
|
||||||
|
type = value_t::null;
|
||||||
|
result.m_value = basic_json::json_value();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// save the type
|
// save the type
|
||||||
|
|
|
@ -489,4 +489,10 @@ TEST_CASE("regression tests")
|
||||||
j["/this/that"_json_pointer] = 27;
|
j["/this/that"_json_pointer] = 27;
|
||||||
CHECK(j == json({{"this", {{"that", 27}}}}));
|
CHECK(j == json({{"this", {{"that", 27}}}}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("issue #329 - serialized value not always can be parsed")
|
||||||
|
{
|
||||||
|
json j = json::parse("22e2222");
|
||||||
|
CHECK(j == json());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue