
...
Automated Detection
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Axivion Bauhaus Suite |
| CertC-FIO34 | |||||||
CodeSonar |
| LANG.CAST.COERCE | Coercion alters value | ||||||
Compass/ROSE | |||||||||
Coverity |
| CHAR_IO | Identifies defects when the return value of | ||||||
ECLAIR | 1.2 | CC2.FIO34 | Partially implemented | ||||||
Klocwork |
| CWARN.CMPCHR.EOF | |||||||
LDRA tool suite |
| 662 S | Fully implemented | ||||||
Parasoft C/C++test |
| CERT_C-FIO34-a | Avoid implicit conversions from wider to narrower types | ||||||
| Character value absorbed into EOF | Data type conversion makes a valid character value same as End-of-File (EOF) The macro EOF shall only be compared with the unmodified return value from any Standard Library function capable of returning EOFChecks for character values absorbed into EOF (rule partially covered) | |||||||
PRQA QA-C |
| 2676, 2678 | |||||||
PRQA QA-C++ |
| 3001, 3010, 3051, 3137, 3717 | |||||||
Splint | 3.1.1 |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
Key here (explains table format and definitions)
Taxonomy | Taxonomy item | Relationship |
---|---|---|
CERT C Secure Coding Standard | STR00-C. Represent characters using an appropriate type | Prior to 2018-01-12: CERT: Unspecified Relationship |
CERT C Secure Coding Standard | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data | Prior to 2018-01-12: CERT: Unspecified Relationship |
CERT Oracle Secure Coding Standard for Java | FIO08-J. Use an int to capture the return value of methods that read a character or byte | Prior to 2018-01-12: CERT: Unspecified Relationship |
ISO/IEC TS 17961:2013 | Using character values that are indistinguishable from EOF [chreof] | Prior to 2018-01-12: CERT: Unspecified Relationship |
CWE 2.11 | CWE-197 | 2017-06-14: CERT: Rule subset of CWE |
CERT-CWE Mapping Notes
Key here for mapping notes
CWE-197 and FIO34-C
Independent( FLP34-C, INT31-C) FIO34-C = Subset( INT31-C)
Therefore: FIO34-C = Subset( CWE-197)
Bibliography
[Kettlewell 2002] | Section 1.2, "<stdio.h > and Character Types" |
[NIST 2006] | SAMATE Reference Dataset Test Case ID 000-000-088 |
[Summit 2005] | Question 12.2 |