C and C++ Binaries


ALLOC.RPF : 解放メモリへのポインタ戻し

要旨

関数の返り値が、既に解放されているメモリを参照するポインタとなっています。

プロパティ

クラス名 Return Pointer to Freed
日本語クラス名 解放メモリへのポインタ戻し
クラス分類 セキュリティ (security)
ニーモニック ALLOC.RPF
カテゴリー
JSF++ JSF++:70.1 An object shall not be improperly used before its lifetime begins or after its lifetime ends.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Return Pointer to Freed"

#include <stdlib.h>

int * returnptr(){
    int * px = malloc(sizeof(int));
    int * py = px;
    if (!py){
      return NULL;
    }
    free(py);
    return(px); /* 'Return Pointer To Freed' warning issued here */
}

void main() {
    int * ptr;
    ptr = returnptr();
    free(ptr);                /* 'Double Free' and 'Free Null Pointer' warnings issued here */
}

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

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