Detect overflow using a long long for the computation result.

Closes #1306
This commit is contained in:
Maxime Coste 2017-07-19 17:55:48 +02:00
parent d3f438810e
commit f87afbcb65

View File

@ -235,8 +235,8 @@ public:
}
else if (cp and isdigit(*cp))
{
int new_val = m_params.count * 10 + *cp - '0';
if (new_val < 0)
long long new_val = (long long)m_params.count * 10 + *cp - '0';
if (new_val > std::numeric_limits<int>::max())
context().print_status({ "parameter overflowed", get_face("Error") });
else
m_params.count = new_val;