...
Do not reuse standard header file names, system-specific header file names, or other header file names.
Non-Compliant Code Example
In this NCE, the programmer chooses to use a local version of the standard library but does not make the change clear.
Code Block | ||
---|---|---|
| ||
#include "stdio.h" /* confusing, distinct from <stdio.h> */ /* ... */ |
Compliant Solution
The solution addresses the problem by giving the local library a unique name (as per PRE08-C. Guarantee that header file names are unique), which makes it explicit that the library used is not the original.
Code Block | ||
---|---|---|
| ||
/* Using a local version of stdio.h */ #include "mystdio.h" /* ... */ |
Risk Assessment
Using header names that conflict with the C standard library functions can result in not including the intended file.
Recommendation | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
PRE04-C | low | unlikely | medium | P2 | L3 |
Automated Detection
The LDRA tool suite V 7.6.0 can detect violations of this recommendation.
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
References
Wiki Markup |
---|
\[[ISO/IEC 9899:1999|AA. C References#ISO/IEC 9899-1999]\] Section 7.1.2, "Standard Headers" |
...