V1024. The stream is checked for EOF before reading from it, but is not checked after reading. Potential use of invalid data.


Анализатор обнаружил возможное использование некорректных данных при их чтении.

Пример неправильного кода:

while (!in.eof()) {
  in >> x;
  foo(x);
}

В случае, если операция чтения закончится неудачей, переменная 'x' будет содержать некорректные данные. При этом функция 'foo' всё равно будет вызвана. Необходимо либо добавить ещё одну проверку перед использованием переменной 'x', либо переписать цикл так, как показано дальше.

Корректный код:

while (in >> x) {
  foo(x);
}

Дополнительные ссылки:

Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-20.


Найденные ошибки

Проверено проектов
344
Собрано ошибок
12 899

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;