...
Incorrectly assuming that character data has been read can result in an out-of-bounds memory write or other flawed logic.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
FIO37-C | High | Probable | Yes | MediumYes | P12P18 | L1 |
Automated Detection
Tool | Version | Checker | Description | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| Supported: Astrée reports defects due to returned (empty) strings. | ||||||||
| Axivion Bauhaus Suite |
| CertC-FIO37 | ||||||||
| CodeSonar |
| (general) | Considers the possibility that fgets() and fgetws() may return empty strings (Warnings of various classes may be triggered depending on subsequent operations on those strings. For example, the noncompliant code example cited above would trigger a buffer underrun warning.) | |||||||
| Compass/ROSE | Could detect some violations of this rule (In particular, it could detect the noncompliant code example by searching for | |||||||||
| Cppcheck Premium |
| premium-cert-fio37-c | ||||||||
| Helix QAC |
| DF4911, DF4912, DF4913 | ||||||||
| Klocwork2024.4 |
| CERT.FIO.FGETS | ||||||||
| LDRA tool suite |
| 44 S | Enhanced enforcement | |||||||
| Parasoft C/C++test |
| CERT_C-FIO37-a | Avoid accessing arrays out of bounds | |||||||
| Polyspace Bug Finder |
| CERT C: Rule FIO37-C | Checks for use of indeterminate string (rule fully covered) |
...