Как могло произойти сбой чтения чисел с помощью sscanf?

Cppcheck обнаружил потенциальную проблему в таком коде:

float a, b, c;
int count = sscanf(data, "%f,%f,%f", &a, &b, &c);

Он говорит, что:« scanf без ограничений ширины поля может аварийно завершить работу с огромными данными ». Как это возможно? Это известная ошибка в некоторых реализациях sscanf? Я понимаю, что числа могут переполняться (численно), но как могло произойти сбой программы? Это ложное срабатывание в cppcheck?

Я нашел аналогичный вопрос : scanf Предупреждение Cppcheck , но ответ не совсем удовлетворительный. В ответе упоминается безопасность типов, но здесь это не должно быть проблемой.

11
задан Community 23 May 2017 в 12:24
поделиться