1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:58:11 +00:00

Kernel: Fix some failing assertions

When mounting Ext2FS, we don't care if the file has a custody (it doesn't if
it's a device, which is a common case). When doing a bind-mount, we do need a
custody; if none is provided, let's return an error instead of crashing.
This commit is contained in:
Sergey Bugaev 2020-05-28 17:47:33 +03:00 committed by Andreas Kling
parent f945d7c358
commit 6627c3ea3a

View file

@ -4104,14 +4104,16 @@ int Process::sys$mount(const Syscall::SC_mount_params* user_params)
// We're doing a bind mount.
if (description.is_null())
return -EBADF;
ASSERT(description->custody());
if (!description->custody()) {
// We only support bind-mounting inodes, not arbitrary files.
return -ENODEV;
}
return VFS::the().bind_mount(*description->custody(), target_custody, params.flags);
}
if (fs_type == "ext2" || fs_type == "Ext2FS") {
if (description.is_null())
return -EBADF;
ASSERT(description->custody());
if (!description->file().is_seekable()) {
dbg() << "mount: this is not a seekable file";
return -ENODEV;