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


The analyzer has detected code where invalid data may be used during a read operation.

Consider the following example:

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

If the read operation fails, the 'x' variable will contain invalid data, while the 'foo' function will be called anyway. The solution is to either add another check before using 'x' or rewrite the loop as shown below.

Fixed code:

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

References:

According to Common Weakness Enumeration, potential errors found by using this diagnostic are classified as CWE-20.


Bugs Found

Checked Projects
344
Collected Errors
12 970