UNUSED.FUNC.GEN
未使用関数
関数が定義されているが、使用されていません。
脆弱性とリスク
定義されているが、使用されていない関数は若干の影響を及ぼす可能性があります。類似した名前を持つ誤った関数が呼び出されるなど、開発において混乱を招く可能性があります。まれに、使用されない関数が最終的な実行可能ファイルに挿入され、その他の脆弱性をもたらす可能性もあります。このチェッカーはほとんどの場合、使用されない静的関数に関連しています。定義上、静的関数は翻訳単位以外から呼び出すことはできません (関数がヘッダーファイル内に存在し、複数の翻訳単位に含まれる場合を除く)。
脆弱コード例 1
コピー
static void used() {}
static void unused() {}
int main() {
used();
return 0;
}
上記のコード抜粋で、関数 "unused()" は静的として定義されていますが、現在の翻訳単位内で使用されないため、削除してください。Klocwork は 2 行目で UNUSED.FUNC.GEN を生成し、デベロッパーにアラートを発します。
修正コード例 1
コピー
static void used() {}
int main() {
used();
return 0;
}
問題を修正するには、関数 “unused()” をファイルから削除してください。
脆弱コード例 2
コピー
static void foo(int x) {}
static void foo(int x, int y) {}
int main() {
foo(0,0);
return 0;
}
類似した状況で、多重定義された関数のコンテキストの場合、Klocwork は、1 行目に UNUSED.FUNC.GEN を生成します。
修正コード例 2
コピー
static void used(int x, int y) {}
int main() {
used(0,0);
return 0;
}
foo の使用されないバージョン、"foo(int)" は単に削除してください。