Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Noncompliant Code Example (Variadic Functions)

Wiki MarkupThe POSIX function {{open()}} \[ [Open Group 2004|AA. Bibliography#Open Group 04]\] is a variadic function with the following prototype:

Code Block
int open(const char *path, int oflag, ... );

...

Tool

Version

Checker

Description

Section

GCC

Include Page
c:GCC_Vc:
GCC_V

 

Section

can detect violation of this rule when the -Wstrict-prototypes flag is used. However, it cannot detect violations involving variadic functions, such as the open() example described earlier.

Section

Compass/ROSE

 

 

Section

can detect some violations of this rule. In particular, it ensures that all calls to open() supply exactly two arguments if the second argument does not involve O_CREAT, and exactly three arguments if the second argument does involve O_CREAT.

Section

LDRA tool suite

Include Page
c:LDRA_Vc:
LDRA_V
Section

41 D
98 S
170 S
496 S

Section

Partially Implemented

...

MITRE CWE: CWE-628, "Function Call with Incorrectly Specified Arguments"

Bibliography

...

\[[CVE|AA. Bibliography#CVE]\] [CVE-2006-1174 | http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1174] \[[Spinellis 2006|AA. Bibliography#Spinellis 06]\] Section
[Spinellis 2006] Section 2.6.1, "Incorrect Routine or Arguments"

...

EXP36-C. Do not convert pointers into more strictly aligned pointer types      03. Expressions (EXP)      EXP38-C. Do not call offsetof() on bit-field members or invalid types