termptyesc: _csi_arg_get() could be called with nothing to read

Could be the case when an error was already found while decoding the
stream
This commit is contained in:
Boris Faure 2017-05-17 23:34:06 +02:00
parent 0517be32f4
commit 490a065fb1
1 changed files with 14 additions and 9 deletions

View File

@ -93,25 +93,30 @@ _csi_arg_get(Eina_Unicode **ptr)
Eina_Unicode *b = *ptr;
int sum = 0;
while ((*b) && (*b < '0' || *b > '9')) b++;
if (!b)
goto error;
while ((*b) && (*b < '0' || *b > '9'))
b++;
if (!*b)
{
*ptr = NULL;
return 0;
}
goto error;
while ((*b >= '0') && (*b <= '9'))
{
if (sum > INT32_MAX/10 )
{
*ptr = NULL;
return 0;
}
goto error;
sum *= 10;
sum += *b - '0';
b++;
}
*ptr = b;
return sum;
error:
*ptr = NULL;
return -1;
}
static void