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 行目で失われていることを示すメモリリークのレポートを生成します。