☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

不应存在完全相同的 if...else-if 分枝

9.1.5 ID_if_identicalElseIfBlock
目录 › next › previous

完全相同的分枝是没有意义的,也可能是由复制粘贴造成的错误。

示例:

if (condition1) {
    branch1
}
else if (condition2) {
    branch2
}
else {
    branch1  // Non-compliant
}

例中 condition1 对应分枝和 else 分枝完全相同,应该合并成一个分枝,或修正本应存在的差异:

if (condition2) {
    branch2
}
else {
    branch1  // Compliant
}

例外:

如果分枝的代码量较少,为了使代码更清晰可以接受适当的重复,但如果代码量很多就不应重复了,审计工具不妨指定一个数量限制,当重复分枝的符号数量超过这个限制时算作违规,否则放过。

配置

blockTokenCountThreshold: 分枝符号数量阈值,不检查符号数量小于该值的分枝

相关

ID_if_identicalBlock

参考

CWE-670
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.