JD.METHOD.CBS
メソッドは静的です
JD.METHOD.CBS は仮想メソッドがメンバー変数にアクセスしない、または他の仮想メソッドを呼び出さないときにトリガーされます。
脆弱性とリスク
そのリスクは、クラスにおいて、不当に増えたメモリフットプリントです。これはモバイルや組み込み型システムにおいて、非常に慎重に扱う必要がある問題です。この指摘を回避するには、報告されたメソッドは静的になる必要があります。
脆弱コード例 1
コピー
public class A {
public static int val = 0;
public int counter = 0;
public int foo() { // method can be static
val = 109;
return val;
}
public int test() { // method can not be static
val = 100*counter;
return val;
}
}
JD.METHOD.CBS が 5 行目に対して報告されています。メソッド「foo」は静的であると宣言できます。
メソッド「foo」は静的クラスメンバー「val」のみを使用し、任意の仮想クラスメソッドを呼び出しません。
修正コード例 1
コピー
public class A {
public static int val = 0;
public int counter = 0;
public static int foo() { // method can be static
val = 109;
return val;
}
public int test() { // method can not be static
val = 100*counter;
return val;
}
}