Использование неподтвержденного буфера от функции fgets-семейства
Этот дефект происходит, когда вы не проверяете если операция записи с помощью fgets- функция семейства, такая как:
char * fgets(char* buf, int n, FILE *stream)
buf (как показано выше), средство проверки повышает дефект если:
Вы передаете buf в качестве аргумента к стандартным функциям, которые распечатывают или управляют строками или широкими строками.
Вы возвращаете buf от функции.
Вы передаете buf в качестве аргумента к внешним функциям параметром вводят const char * или const wchar_t *.
Вы читаете buf как buf[index] или *(buf + offset), где index или offset численное значение, представляющее расстояние с начала буфера.
Если fgets- сбои функции семейства, содержимое ее буфера вывода неопределенно. Использование такого буфера имеет неопределенное поведение и может привести к программе, которая прекращает работать или другие уязвимости системы обеспечения безопасности.
Сбросьте буфер вывода fgets- функция семейства к известному значению строки, когда функция перестала работать.
| Группа: Программирование |
| Язык: C | C++ |
| Значение по умолчанию: Off |
Синтаксис командной строки:
INDETERMINATE_STRING
|
| Удар: Средняя |
Invalid use of standard library string routine | Returned value of a sensitive function not checked | Use of dangerous standard function | Find defects (-checkers)