JD.RC.EXPR.CHECK
JD.RC.EXPR.CHECK は、ローカル変数のチェックが行われると起動されます。ただし、そのチェックの結果は常に 'true' の値になります。したがって、この状況においてはコードのブロックは実行されます。
脆弱性とリスク
ロジックに欠陥があります。チェックは、コンパイル時に未知のプロパティに対してのみ実行されます。
軽減と防止
正しい変数と正しい値に対してチェックを行っていることを確認してください。
例 1
コピー
void handleEvent(AWTEvent event) {
if (event instanceof MouseEvent) {
if (event != null) {
handleMouseEvent((MouseEvent) event);
}
}
}
JD.RC.EXPR.CHECK は 15 行目のチェックに対して報告されています。14 行目のチェックにより 'event' が NULL でないことを保証されるためです。
例 2
コピー
void handleEvent(AWTEvent event) {
if (event != null) {
if (event instanceof MouseEvent) {
handleMouseEvent((MouseEvent) event);
}
}
}
JD.RC.EXPR.CHECK はスニペットに対して報告されていません:14 行目の NULL チェックでは 'event' が MouseEvent クラスのインスタンスであることは保証されません。