Аргумент получен из небезопасного источника и может иметь значение NULL или не быть завершен NULL
Этот дефект возникает, когда строки из небезопасных источников используются в стандартных программах манипуляции строками, которые неявно передают буфер строк, например strcpy
или sprintf
. Чтобы считать все входы за пределами периметра анализа тока небезопасными, используйте -consider-analysis-perimeter-as-trust-boundary
.
Испорченная строка NULL или строка без обрыв NULL не вызывает дефекта для строки, возвращенной из вызова в scanf
-семейные вариадные функции. Точно так же никакой дефект не поднимается, когда вы передаете строку с %s
спецификатор для printf
-семейные вариадные функции.
Если строка из небезопасного источника, возможно, что атакующий манипулировал строкой или указывал строковый указатель на другое место памяти.
Если строка имеет значение NULL, строковая стандартная программа не может разлучить строку, что приводит к аварийному завершению работы программы. Если строка не оконечна null, строковая стандартная программа может не знать, когда строка закончится. Эта ошибка может привести к тому, что вы записываете вне границ, вызывая переполнение буфера.
Проверьте строку перед использованием. Проверьте, что:
Строка не имеет значение NULL.
Строка завершена со значением null
Размер строки соответствует ожидаемому размеру.
Группа: испорченные данные |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: TAINTED_STRING |
Влияние: Низкое |
ИДЕНТИФИКАТОР CWE: 120, 170, 476, 690, 822 |
-consider-analysis-perimeter-as-trust-boundary
| Find defects (-checkers)
| Tainted string format