понимание опасностей sprintf (…)

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 за пределами адреса памяти сообщения , что приведет к переполнению буфера

Подтвердите / отклоните. Спасибо

22
задан Kevin Meredith 27 August 2013 в 11:35
поделиться