FUNCRET.GEN
非 void 函数不返回值
FUNCRET.GEN 检查器会在没有 return 语句的非 void 函数中查找路径。
漏洞与风险
这种情况会导致返回值未被初始化,从而无法达到设计意图。
漏洞代码示例
复制
#include <stdio.h>
int string_len()
{
//...
}
int main()
{
string_len();
return 0;
}
Klocwork 标记了第 5 行,指出 int 函数没有 return 语句。相反,第 10 行中含相应 return 语句的 main 函数未被标记。