你好。
我是一个对Polyspace工具感兴趣的初学者。
在Polyspace®代码验证器™入门指南的第63页,代码验证器说没有假阴性。
然而,通过使用Polyspace Code Prover对NIST Juliet Test Suite for C / c++的一部分进行静态分析,发现在以下CWE ID中存在假阴性。
- CWE 126(缓冲区过载)
- CWE 561(失效代码)
- CWE 674(非受控递归)
- CWE 835(无法到达退出条件的循环(“无限循环”))
我分析了代码,但我还是问了因为我不明白为什么会出现假阴性。
- CWE 561 True Positive(代码验证器检测到它)的示例。
空白CWE561_Dead_Code__return_before_code_01_bad ()
{
返回;
/ *缺陷:代码后的'return' * /
printLine(“Hello”);
}
- CWE 561假阴性(无法检测到代码验证器)的例子
static void helperBad ()
{
printLine(“helperBad () ");
}
任何地方都没有调用helperBad函数。