Строка C-стиля должна гарантировать достаточный пробел для данных и пустого терминатора строки
Строка C-стиля должна гарантировать достаточный пробел для данных и пустого терминатора строки.
C-стиль представляет в виде строки не, только требуют пробела для символьных записанных данных, но и требуют одного явного символа в конце для дополнительного пустого терминатора строки. Отказ вместить для пробела потребовал переполнения буфера причин, ведя к повреждению памяти, уязвимостям системы обеспечения безопасности и другим проблемам.
Средство проверки ищет эти проблемы:
Использование опасной стандартной функции.
Эта проблема происходит, когда вы используете функции C, такие как gets и strcpy, которые записывают данные к буферу, но по сути не обеспечивают средства управления на длине записанных данных.
Для большего количества полного списка функций и их более безопасных альтернатив, смотрите Use of dangerous standard function.
Переполнение буфера от неправильного спецификатора формата строки.
Эта проблема происходит, когда аргумент спецификатора формата для C функционирует, такие как sscanf приводит к переполнению или потере значимости в аргументе буфера памяти.
Целевое переполнение буфера в обработке строк.
Эта проблема происходит, когда определенные функции манипуляции со струнами до пишут в свой целевой буферный аргумент при смещении, больше, чем buffer size.
Например, при вызове функционального sprintf(char* buffer, const char* format), вы используете постоянную строку format из большего размера, чем buffer.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: библиотека ввода/вывода |
| Категория: консультация, автоматизированная |