OWASP говорит:
«Функции библиотеки C, такие как strcpy (), strcat (), sprintf () и vsprintf () работают со строками с завершающим нулем и не выполнять проверку границ. "
sprintf записывает форматированные данные в строку int sprintf (char * str, const char * format, ...);
Пример:
sprintf(str, "%s", message); // assume declaration and
// initialization of variables
Если я понимаю комментарий OWASP, то опасности использования sprintf заключаются в том, что
1) if message [ Длина 1190475]> длины str , произойдет переполнение буфера
и
2) если сообщение не завершается нулевым символом \ 0
, тогда сообщение может быть скопировано в str за пределами адреса памяти сообщения , что приведет к переполнению буфера
Подтвердите / отклоните. Спасибо