Использование неподтвержденного буфера от функции 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)