C and C++


LANG.STRUCT.FUNCPTR.CALL : 関数ポインタの使用

要旨

関数ポインタを介して呼び出しが発生しています。

プロパティ

クラス名 Function Pointer
日本語クラス名 関数ポインタの使用
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.FUNCPTR.CALL
カテゴリー
CWE CWE:710 Improper Adherence to Coding Standards
TS17961 TS17961:5.38-taintnoproto 5.38. Using a tainted value as an argument to an unprototyped function pointer
POW10 POW10:9 Limit the use of pointers. Use no more than two levels of dereferencing per expression.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Function Pointer"

typedef int (*unaryArith)(int);
unaryArith getUnaryFunction(void);

int lang_struct_funcptr_call(void){
    unaryArith myFunc = getUnaryFunction();
    int rv = myFunc(4);    /* 'Function Pointer' warning issued here */
    return rv;
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。