のカバー率が発生します。 toctou:チェック関数の後にDIRを使用する関数mkdirを呼び出します。これは、私がstatとmkdirを順番に含む競合条件
if (mkdir(NDUID_DIR, 0755) < 0)
{
if(errno != EEXIST)
{
return ERROR;
}
}
をチェックして存在するファイルのみのためのstatを使用していたために、コードを変更するには十分です
if (stat(DIR, &st) != 0)
{
if (mkdir(DIR, 0755) < 0)
{
return ERROR;
}
}
時間の使用競合状態、時間のチェックを引き起こす可能性がありますコードを修正する良い方法はありますか?