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:
parent
6876b9a514
commit
b7b09470ca
2 changed files with 4 additions and 0 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue