このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
-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-boundary
num
とdenum
の間の除算演算にフラグを設定します。
ヒント
このオプションは、Polyspace as You Code 解析では役立ちません。
バージョン履歴
R2020b で導入