1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:47:44 +00:00

Kernel: Return -ENOTDIR for non-directory mount target

The absence of this check allowed silly things like this:

    # touch file
    # mount /dev/hda file
This commit is contained in:
Linus Groh 2021-01-28 23:46:30 +01:00 committed by Andreas Kling
parent 6876b9a514
commit b7b09470ca
2 changed files with 4 additions and 0 deletions

View file

@ -67,6 +67,9 @@ int Process::sys$mount(Userspace<const Syscall::SC_mount_params*> user_params)
auto& target_custody = custody_or_error.value();
if (!target_custody->inode().is_directory())
return -ENOTDIR;
if (params.flags & MS_REMOUNT) {
// We're not creating a new mount, we're updating an existing one!
return VFS::the().remount(target_custody, params.flags & ~MS_REMOUNT);