...
The GNU libc implementation of strerror_r declares the function to return char*
, in conflict with the POSIX ® ® specification. The following noncompliant code example relies on this return type to pass the return value as an argument to the %s
formatting directive to fprintf
. The behavior of the example will be undefined on a platform that declares the return type of strerror_r()
to be int
in accordance with POSIX.
...
This rule appears in the C++ Secure Coding Standard as MSC14-CPP. Do not introduce unnecessary platform dependencies.
...
Bibliography
Wiki Markup |
---|
\[[Dowd 06|AA. Bibliography#Dowd 06]\] Chapter 6, "C Language Issues" (Arithmetic Boundary Conditions, pp. 211-223) \[[ISO/IEC 9899:1999|AA. Bibliography#ISO/IEC 9899-1999]\] Section 3.4.1, "implementation-defined behavior," Section 3.4.4, "unspecified behavior," Appendix J.1, "Unspecified behavior," and Appendix J.3, "Implementation-defined behavior" \[[ISO/IEC PDTR 24772|AA. Bibliography#ISO/IEC PDTR 24772]\] "BQF Unspecified Behaviour" \[[Seacord 05a|AA. Bibliography#Seacord 05]\] Chapter 5, "Integers" |
...