MLK.RET.MIGHT

メモリ リークの可能性があります

特定の条件によっては、メモリが割り当てられて関数から返されると MLK.RET.MIGHT 指摘が報告されますが、どの変数にでも割り当てられるわけではありません。割り当て済みメモリは、この時点で失われます。

脆弱性とリスク

メモリリークは、アプリケーションで余分なメモリを消費させます。これによって他のアプリケーションが使用できるメモリ量が減り、結果的に、オペレーティングシステムにページングを開始させ、システム速度を低下させます。重大な場合、アプリケーションがメモリ制限に達して、クラッシュする可能性があります。

例 1

コピー
  void* alloc_data(void* pool)
  {
    if (pool) {
       return pool_alloc(pool, 10);
    } else {
       return malloc(10);
    }
  }

  void foo(void* pool)
  {
    alloc_data(pool);
  }

Klocwork は、関数 'alloc_data' により割り当てられる可能性のある動的メモリが 12 行目で失われていることを示すメモリリークのレポートを生成します。