コンテンツにスキップ

Incorrect Logic (不正確なロジック)

ルール ID

MI105

定義

ソフトウェアは、論理的に誤ったコードまたはプログラマーの本来の意図とは異なる可能性が高いコードを実行しようとしています。

サンプル

次のコードは、CWE の該当コード サンプルの 1 つです。

1
2
3
4
5
6
7
8
9
String s = null;
if (b) {
  s = "Yes";
  return;
}

if (s != null) {
  Dead();
}

2 番目の if 文の条件が満たされることはありません。条件は変数が null 以外であることを要求していますが、s に null 以外が割り当てられる可能性がある唯一のパスに return 文があります。

参考資料

  • Common Weakness Enumeration: CWE-115
  • Common Weakness Enumeration: CWE-393
  • Common Weakness Enumeration: CWE-561