Versions Compared

Key

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

...

The C99 printf() function is implemented as a variadic function. This non-compliant code example swaps its null terminated byte string and integer parameters with respect to how they were specified in the format string. Consequently, the integer is silently converted into interpreted as a pointer to a null terminated byte string and then dereferenced, possibly causing dereferenced. This will likely cause the program to abnormally terminate (. Note that the error_message pointer is likewise silently converted into interpreted as an integer).

Code Block
bgColor#ffcccc
char const *error_msg = "Error occurred";
/* ... */
printf("%s:%d", 15, error_msg);

...