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 行目に対して報告されています。式でのビット演算子 '&' の使用は問題があります。'&&' と間違えて記述されたと考えられます。

関連チェッカー