EN JP CN

MLK.RET.MIGHT

MLK.RET.MIGHT

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

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

脆弱性とリスク

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

例 1

1  void* alloc_data(void* pool)
2  {
3    if (pool) {
4       return pool_alloc(pool, 10);
5    } else {
6       return malloc(10);
7    }
8  }
9
10  void foo(void* pool)
11  {
12    alloc_data(pool);
13  }

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