fix UBSAN

pull/2044/head
chenguoping 2020-05-14 20:54:47 +08:00
parent 8f5b5c7469
commit e175150f5b
2 changed files with 4 additions and 2 deletions

View File

@ -194,7 +194,8 @@ class binary_writer
}
else
{
if (static_cast<double>(static_cast<float>(j.m_value.number_float)) == j.m_value.number_float)
if (j.m_value.number_float < std::numeric_limits<float>::max() and
static_cast<double>(static_cast<float>(j.m_value.number_float)) == j.m_value.number_float)
{
oa->write_character(get_cbor_float_prefix(static_cast<float>(j.m_value.number_float)));
write_number(static_cast<float>(j.m_value.number_float));

View File

@ -12143,7 +12143,8 @@ class binary_writer
}
else
{
if (static_cast<double>(static_cast<float>(j.m_value.number_float)) == j.m_value.number_float)
if (j.m_value.number_float < std::numeric_limits<float>::max() and
static_cast<double>(static_cast<float>(j.m_value.number_float)) == j.m_value.number_float)
{
oa->write_character(get_cbor_float_prefix(static_cast<float>(j.m_value.number_float)));
write_number(static_cast<float>(j.m_value.number_float));