JD.BITCMP
JD.BITCMP は、&& や || などの短絡 (short-circuit) 演算子の代わりに、& や | などのバイナリ演算子がチェックに含まれる場合に発生します。パフォーマンスについては、短絡演算を使用する方が優れています。また、バイナリ演算子を使用する場合、式の両側が評価され、上記の例のように NULL ポインターがスローされるなどの予期しない問題が生じる可能性があります。
脆弱性とリスク
JD.BITCMP の欠陥は、パフォーマンスの影響や、RuntimeException がスローされるなどの予期しない挙動を生じる可能性があります。
軽減と防止
ビット演算を短絡演算に置き換えてください。
例 1
コピー
static void check(int arr[]) {
if (arr!=null & arr.length!=0) {
foo();
}
return;
}
JD.BITCMP が 11 行目に対して報告されています。式でのビット演算子 '&' の使用は問題があります。'&&' と間違えて記述されたと考えられます。