The formatted output functions (fprintf()
and related functions) convert, format, and print their arguments under control of a format string, defined by the C Standard, 7.21.6.1, paragraph 3 [ISO/IEC 9899:2011], specifies:
The format shall be a multibyte character sequence, beginning and ending in its initial shift state. The format is composed of zero or more directives: ordinary multibyte characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments, converting them, if applicable, according to the corresponding conversion specifier, and then writing the result to the output stream.
...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
CodeSonar |
| IO.INJ.FMT | Format string injection | ||||||
Coverity |
| PW.PRINTF_ARG_MISMATCH | Reports when the number of arguments differs from the number of required arguments according to the format string | ||||||
|
| Can detect violations of this recommendation when the | |||||||
| SV.FMT_STR |
| |||||||
| 486 S | Fully implemented | |||||||
Parasoft C/C++test | 9.5 | PB-45,PB-46,PB-47,PB-48,PB-49,PB-50 | Fully implemented | ||||||
PRQA QA-C |
| 0179 (U) | Partially implemented |
...