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;
}
}
针对第 5 行报告 JD.METHOD.CBS:方法“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;
}
}