Browse Source

Kernel: Do not panic on fstat(fifo)

Instead, let's return an empty buffer with st_mode indicating it's a fifo.
Sergey Bugaev 5 năm trước cách đây
mục cha
commit
e9dd94063f

+ 6 - 1
Kernel/FileSystem/FileDescription.cpp

@@ -48,7 +48,12 @@ FileDescription::~FileDescription()
 
 
 KResult FileDescription::fstat(stat& buffer)
 KResult FileDescription::fstat(stat& buffer)
 {
 {
-    ASSERT(!is_fifo());
+    if (is_fifo()) {
+        memset(&buffer, 0, sizeof(buffer));
+        buffer.st_mode = 001000;
+        return KSuccess;
+    }
+
     if (!m_inode)
     if (!m_inode)
         return KResult(-EBADF);
         return KResult(-EBADF);
     return metadata().stat(buffer);
     return metadata().stat(buffer);