EN JP CN

STRONG.TYPE.ASSIGN.CONST

STRONG.TYPE.ASSIGN.CONST

予期しない強い型の定数の割り当て

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

STRONG.TYPE.ASSIGN.CONST チェッカーは、予期されずに強い型に割り当てられる定数を検出します。この規則では、定数は、v が静的変数または自動変数の形式 &v の式、引用符付きの文字列、整数定数が考えられます。

脆弱性とリスク

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

脆弱コード例

1 typedef int Weight;
2 
3 int main() {
4   Weight w;
5   w = 1;
6   return 0;
7 }

Klocwork 定数が強い型 Weight の変数に割り当てられていることを示す 5 行目にフラグを立てます。