1

是否有mkdir()C 的安全替代方案?我正在检查一些代码,并注意到它正在使用对mkdir(). 根据我在 US-CERT 安全编码网站上阅读的内容,使用该功能使其容易受到“检查时间,使用时间”(TOCTOU)的影响。

编辑

来自 zlib 的 miniunz.c 源

int mymkdir(dirname)
    const char* dirname;
{
    int ret=0;
#ifdef WIN32
    ret = mkdir(dirname);
#else
#ifdef unix
    ret = mkdir (dirname,0775);
#endif
#endif
    return ret;
}

以上mkdir就是我所指的。

4

2 回答 2

2

你的问题有点含糊;参考 US-CERT 文档和一些示例代码会很好。

尽管如此,我敢打赌答案是mkdirat()

于 2011-06-02T17:37:34.563 回答
1

mkdir()只有TOCTOU - 检查时间,使用时间,当它前面是检查目录是否存在时。

在您的示例中,如果调用代码做正确的事情,上面的用法是可以的。检查扎克的评论。

于 2011-06-02T17:45:55.420 回答