diff --git a/Kernel/VirtualFileSystem.cpp b/Kernel/VirtualFileSystem.cpp index 9465699319..801b207809 100644 --- a/Kernel/VirtualFileSystem.cpp +++ b/Kernel/VirtualFileSystem.cpp @@ -189,12 +189,17 @@ RetainPtr VFS::open(const String& path, int& error, int options, error = -EACCES; return nullptr; } + if (metadata.is_directory()) { + error = -EISDIR; + return nullptr; + } } if (metadata.is_device()) { auto it = m_devices.find(encoded_device(metadata.major_device, metadata.minor_device)); if (it == m_devices.end()) { kprintf("VFS::open: no such device %u,%u\n", metadata.major_device, metadata.minor_device); + error = -ENODEV; return nullptr; } auto descriptor = (*it).value->open(error, options);