Versions Compared

Key

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

...

0161, 0162, 0163, 0164, 0165, 0166, 0167, 0168, 0169,

0170, 0171, 0172, 0173, 0174, 0175, 0176, 0177, 0178,

0179 [U], 0180 [C99], 0184 [U], 0185 [U], 0190 [U],

0191 [U], 0192 [U], 0193 [U], 0194 [U], 0195 [U], 0196 [U],

0197 [U], 0198 [U], 0199 [U], 0200 [U], 0201 [U], 0202 [I],

0204 [U], 0206 [U]

Tool

Version

Checker

Description

Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-FIO47Fully implemented
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V

IO.INJ.FMT
MISC.FMT
MISC.FMTTYPE

Format string injection
Format string
Format string type error

Coverity
Include Page
Coverity_V
Coverity_V
PWReports when the number of arguments differs from the number of required arguments according to the format string
GCC
Include Page
GCC_V
GCC_V


Can detect violations of this recommendation when the -Wformat flag is used

Helix QAC

Include Page
Helix QAC_V
Helix QAC_V

C0161, C0162, C0163, C0164, C0165, C0166, C0167, C0168, C0169, C0170, C0171, C0172, C0173, C0174, C0175, C0176, C0177, C0178, C0179, C0180, C0184, C0185, C0190, C0191, C0192, C0193, C0194, C0195, C0196, C0197, C0198, C0199, C0200, C0201, C0202, C0204, C0206, C0209

C++3150, C++3151, C++3152, C++3153, C++3154, C++3155, C++3156, C++3157, C++3158, C++3159


Klocwork
Include Page
Klocwork_V
Klocwork_V

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD
SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED
SV.FMT_STR.PRINT_IMPROP_LENGTH
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY
SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD
SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED
SV.FMT_STR.SCAN_IMPROP_LENGTH
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY
SV.FMT_STR.UNKWN_FORMAT


LDRA tool suite
Include Page
LDRA_V
LDRA_V

486 S
589 S

Fully implemented

Parasoft C/C++test
Include Page
Parasoft_V
Parasoft_V

CERT_C-FIO47-a
CERT_C-FIO47-b
CERT_C-FIO47-c
CERT_C-FIO47-d
CERT_C-FIO47-e
CERT_C-FIO47-f

There should be no mismatch between the '%s' and '%c' format specifiers in the format string and their corresponding arguments in the invocation of a string formatting function
There should be no mismatch between the '%f' format specifier in the format string and its corresponding argument in the invocation of a string formatting function
There should be no mismatch between the '%i' and '%d' format specifiers in the string and their corresponding arguments in the invocation of a string formatting function
There should be no mismatch between the '%u' format specifier in the format string and its corresponding argument in the invocation of a string formatting function
There should be no mismatch between the '%p' format specifier in the format string and its corresponding argument in the invocation of a string formatting function
The number of format specifiers in the format string and the number of corresponding arguments in the invocation of a string formatting function should be equal

PC-lint Plus

Include Page
PC-lint Plus_V
PC-lint Plus_V

492, 493, 494, 499, 557,
558, 559, 566, 705, 706,
719, 816, 855, 2401, 2402,
2403, 2404, 2405, 2406, 2407

Fully supported

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

CERT C: Rule FIO47-C

Check for format string specifiers and arguments mismatch (rule fully covered)

PRQA QA-C
Include Page
PRQA QA-C_vPRQA QA-C_vPartially implementedPVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V510, V576
TrustInSoft Analyzer

Include Page
TrustInSoft Analyzer_V
TrustInSoft Analyzer_V

match format and argumentsExhaustively verified (see the compliant and the non-compliant example).

...