EN JP CN

FUNCRET.GEN

FUNCRET.GEN

非 void 関数によって値が返されません

FUNCRET.GEN チェッカーは、return ステートメントのない非 void 関数でパスを探します。

脆弱性とリスク

このような状況では、戻り値は初期化されないままであるため、設計の意図は達成されません。

脆弱コード例

1 #include <stdio.h>
2 int string_len()
3 {
4       //...
5 }
6
7 int main()
8 {
9        string_len();
10       return 0;
11 }

Klocwork 'int' 関数が戻り値を持たないことを示す5 行目にフラグを立てます。その一方で、10 行目の return ステートメントを持つ 'main' 関数にはフラグは立てられません。