-consider-analysis-perimeter-as-trust-boundary

Рассмотрите периметр анализа как доверительный контур, так что данные, поступающие из-за пределов текущего периметра анализа, считаются испорченными

Синтаксис

-checkers tainted_data -consider-analysis-perimeter-as-trust-boundary

Описание

-checkers tainted_data -consider-analysis-perimeter-as-trust-boundary изменяет поведение испорченных дефектов данных так, чтобы данные, исходящие из-за периметра анализа, считались испорченными. Например, если вы анализируете один файл, то любые данные, которые берутся за пределами этого файла, считаются испорченными.

По умолчанию эти данные считаются испорченными:

  • Объекты, объявленные или определенные как volatile

  • Внешние данные, такие как вход пользователя, аппаратные данные, сетевые данные и переменная окружения

См. «Источники испорченных данных».

Если вы задаете опцию -consider-analysis-perimeter-as-trust-boundary наряду с опцией -checkers tainted_data, данные, которые не берутся из текущих возможностей Polyspace® анализ считается испорченным. Такие данные могут включать:

  • Формальные параметры внешне видимой функции, которые не имеют видимого вызывающего абонента.

  • Возвращает значения упрямых функций.

  • Глобальные переменные, внешние по отношению к модулю.

Если вы не доверяете данным, исходящим из внешнего модуля, используйте эту опцию, чтобы обнаружить операции, которые уязвимы для этих испорченных данных.

Пример

Рассмотрим этот код:

#include<stdio.h>
double taintedloopboundary(double num, double denum) {
	int count;
	scanf("%d", &count);
	for (int i=0; i<count; ++i) { 
		num = num/denum;
	} 
	return num;
}
В примере показаны два случая испорченных данных: один обнаружен по умолчанию и один с помощью этой опции.

  • Переменная count получен от пользователя. Если вы выполняете анализ испорченных данных по умолчанию с помощью команды:

    polyspace-bug-finder -checkers tainted_data
    Polyspace помечает переменную тонированного цикла.

  • Переменные num и denum не определены в текущем модуле. Если вы измените анализ испорченных данных с помощью команды:

    polyspace-bug-finder -checkers tainted_data -consider-analysis-perimeter-as-trust-boundary
    Polyspace помечает операцию деления между num и denum.

Совет

Эта опция не используется в анализе Polyspace во время You Code.

Введенный в R2020b