Указатель из небезопасного источника может иметь значение NULL или указывать на неизвестную память
Этот дефект возникает, когда:
Испорченный NULL-указатель - указатель, полученный из небезопасного источника, не проверяется на соответствие NULL.
Тонированный указатель размера - размер зоны памяти, на который указывает небезопасный указатель, не проверяется.
Примечание
На одном указателе у вашего кода могут быть образцы Use of tainted pointer, Pointer dereference с tainted offset и Tainted NULL или non-null-termined string. Bug Finder поднимает только первый испорченный дефект указателя, который находит.
Чтобы считать все входы за пределами периметра анализа тока небезопасными, используйте -consider-analysis-perimeter-as-trust-boundary
.
Атакующий может дать вашей программе указатель, который указывает на неожиданные места памяти. Если указатель разыменован для записи, атакующий может:
Измените переменные состояния критической программы.
Из-за сбоя вашей программы.
Выполните нежелательный код.
Если указатель не считывается, атакующий может:
Чтение конфиденциальных данных.
Из-за сбоя вашей программы.
Измените программную переменную на неожиданное значение.
Избегайте использования указателей из внешних источников.
Кроме того, если вы доверяете внешнему источнику, санируйте указатель мыши перед разыменованием. В отдельной функции дезинфекции:
Проверьте, что указатель не имеет значение NULL.
Проверьте размер места памяти (если возможно). Эта вторая проверка подтверждает, соответствует ли размер данных, на которые указывает указатель мыши, размеру, ожидаемому программой.
Дефект все еще появляется в теле функции дезинфекции. Однако, если вы используете функцию санитарной обработки, вместо нескольких вхождений появляется только один раз. Можно обосновать дефект и скрыть его в последующих обзорах с помощью аннотаций кода. Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.
Группа: испорченные данные |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: TAINTED_PTR |
Влияние: Низкое |
ИДЕНТИФИКАТОР CWE : 690, 822 |
-consider-analysis-perimeter-as-trust-boundary
| Find defects (-checkers)
| Pointer dereference with tainted offset