Kernel: Refuse to mkdir any directory named . or ..

This commit is contained in:
apio 2022-11-05 12:09:01 +01:00
parent b78f6f269d
commit b2fb740d99

View File

@ -152,6 +152,11 @@ int VFS::mkdir(const char* path, const char* name)
kwarnln("Chosen node does not support finddir()");
return -ENOTSUP;
}
if (!strncmp(name, ".", strlen(name)) || !strncmp(name, "..", strlen(name)))
{
kwarnln("Attempted to mkdir . or .., which already exist");
return -EEXIST;
}
if (node->find_func(node, name) != nullptr)
{
kwarnln("Already exists");
@ -183,6 +188,11 @@ int VFS::do_mkdir(const char* path, const char* name, int uid, int gid, mode_t m
kwarnln("Chosen node does not support finddir()");
return -ENOTSUP;
}
if (!strncmp(name, ".", strlen(name)) || !strncmp(name, "..", strlen(name)))
{
kwarnln("Attempted to mkdir . or .., which already exist");
return -EEXIST;
}
if (node->find_func(node, name) != nullptr)
{
kwarnln("Already exists");