Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following table from the C Standard, section subclause 7.1.2 [ISO/IEC 9899:2011], lists these standard headers:

<assert.h><float.h><math.h><stdatomic.h><stdlib.h><time.h>
<complex.h><inttypes.h><setjmp.h><stdbool.h><stdnoreturn.h><uchar.h>
<ctype.h><iso646.h><signal.h><stddef.h><string.h><wchar.h>
<errno.h><limits.h><stdalign.h><stdint.h><tgmath.h><wctype.h>
<fenv.h><locale.h><stdarg.h><stdio.h><threads.h>
 

Do not reuse standard header file names, system-specific header file names, or other header file names.

...

Code Block
bgColor#FFcccc
langc
#include "stdio.h"  /* confusingConfusing, distinct from <stdio.h> */

/* ... */

...

Using header file names that conflict with other header file names can result in an incorrect file being included.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

PRE04-C

low

Low

unlikely

Unlikely

medium

Medium

P2

L3

Automated Detection

ToolVersionCheckerDescription
Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-PRE04

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V
hedrname

CC2.PRE04

Fully implemented

LDRA tool suite
Helix QAC

Include Page

LDRA

Helix QAC_V

LDRA

Helix QAC_V

218 S
568 S

Fully implemented

PRQA QA-C
C5001
LDRA tool suite
Include Page
PRQA
LDRA_V
PRQA
LDRA_V
Secondary analysis

568 S

Fully implemented

Related Vulnerabilities

Search for vulnerabilities resulting from the violation of this rule on the CERT website.

Related Guidelines

Bibliography

[ISO/IEC 9899:2011]
Section
Subclause 7.1.2, "Standard Headers"

...


...

Image Modified Image Modified Image Modified