From 6627c3ea3acc9fa9d93c7d7f7c82a5514cce1863 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Thu, 28 May 2020 17:47:33 +0300 Subject: [PATCH] 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. --- Kernel/Process.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index d5dbc4ff1b..d6227c8fc0 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -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;