-consider-analysis-perimeter-as-trust-boundary
解析境界を信頼境界と見なすことによって、現在の解析境界の外部から来たデータは汚染されたと見なす
構文
-checkers cmd_name_of_check -consider-analysis-perimeter-as-trust-boundary
説明
-checkers は、解析境界の外部から来たデータが汚染されたと見なされるように cmd_name_of_check -consider-analysis-perimeter-as-trust-boundarycmd_name_of_check の動作を修正します。たとえば、単一のファイルを解析している場合は、そのファイル以外から来たデータは汚染されたと見なされます。このオプションは、複数の Polyspace® Bug Finder™ 欠陥およびコーディング ルールに影響します。cmd_name_of_check が取り得る値については、Polyspace 汚染データ チェッカーを参照してください。
既定で、以下のデータは汚染されたと見なされます。
volatileとして宣言または定義されたオブジェクトユーザー入力、ハードウェア データ、ネットワーク データ、環境変数などの外部データ
汚染されたデータのソースを参照してください。
オプション -consider-analysis-perimeter-as-trust-boundary を指定すると、現在の Polyspace 解析の範囲に入っていないデータは汚染されたと見なされます。このようなデータには以下が含まれます。
可視の呼び出し元がない、外部から可視の関数の仮パラメーター。
スタブ関数の戻り値。
ユニット外部のグローバル変数。
外部モジュールから来たデータを信頼しない場合は、このオプションを使用して、この汚染されたデータに対して脆弱な操作を検出します。
ユーザー インターフェイス (Polyspace デスクトップ製品のみ) では、[構成] ペインの [その他] フィールドにこのオプションを入力します。Otherを参照してください。
例
次のコードについて考えます。
#include<stdio.h>
double taintedloopboundary(int num, int denum) {
int count;
scanf("%d", &count);
for (int i=0; i<count; ++i) {
num = num/denum;
}
return num;
}変数
countがユーザーから取得されます。次のコマンドを使用して既定で汚染されたデータの解析を実行する場合:Polyspace は、汚染されたループ変数にフラグを設定します。polyspace-bug-finder -checkers tainted_data
変数の
numとdenumは、現在のモジュールで定義されません。次のコマンドを使用して汚染されたデータの解析を変更する場合:Polyspace は、polyspace-bug-finder -checkers tainted_data -consider-analysis-perimeter-as-trust-boundarynumとdenumの間の除算演算にフラグを設定します。
ヒント
このオプションは、Polyspace as You Code 解析では役立ちません。
バージョン履歴
R2020b で導入