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 函数未被标记。