当我将字段设置为 null 时,Fortify 抱怨 Null 取消引用:
String sortName = null;
if (lastName != null && lastName.length() > 0) {
sortName = lastName;
}
sortOptions.setSortField(sortName); <-- Fortify Null Dereference
Fortify 的分析跟踪显示:
Assigned null: sortName
Branch taken: if (lastName != null && lastName.length() > 0)
Dereferenced: sortName
我可以尝试:
if (sortName == null)
sortOptions.setSortField(null);
else
sortOptions.setSortField(sortName);
但这看起来真的很愚蠢。有人有这方面的经验吗?我宁愿放弃这个发现,也不愿直接将其注销。
fortify 不喜欢的是你用以下命令初始化变量null
先无条件,再改变。
这应该有效:
String sortName;
if (lastName != null && lastName.length() > 0) {
sortName = lastName;
} else {
sortName = null;
}
sortOptions.setSortField(sortName);
(或者如果您愿意,可以使用三元运算符)
这样你就初始化了sortName
仅一次,并明确表明null
在某些情况下 value 是正确的,并不是你忘记了某些情况,导致 var 停留null
虽然这是意料之外的。
The 空取消引用错误发生在代码行上sortName = lastName;
不是 setter 的调用:fortify 不希望您有条件地更改设置为的变量的值null
而不是在所有分支机构都这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)