STRONG.TYPE.EXTRACT

別の型の変数への強い型の変数の割り当て

チェッカーの STRONG.TYPE ファミリーは、プログラマーが行う強い型指定 (型が定義された抽象型) が違反または無視され、基礎となる ANSI 型セマンティックスが優先される状況を検出します。

STRONG.TYPE.EXTRACT チェッカーは、次のいずれかの方法で、厳密に型指定されない異なる型の変数に、厳密に型指定された値が割り当てられるインスタンスを検出します。

  • 代入演算子
  • 戻り値
  • 引数の受け渡し
  • 初期化

脆弱性とリスク

ANSI 規格対応のコンパイラは、表面の (プログラマーが定義する) 型ではなく、基底型をチェックするだけであるため、このような指摘に関する警告を報告しません。この結果、論理エラーが発生する可能性があります。

脆弱コード例

コピー
 typedef int Count;

 int main() {
  Count a;
  int b = a; 
  return 0;
 }

Klocwork は、厳密に型指定されない異なる型の変数に、厳密に型指定された変数が割り当てられていることを示す 5 行目にフラグを立てます。