Bladeren bron

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.
Sergey Bugaev 5 jaren geleden
bovenliggende
commit
6627c3ea3a
1 gewijzigde bestanden met toevoegingen van 4 en 2 verwijderingen
  1. 4 2
      Kernel/Process.cpp

+ 4 - 2
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;