Explorar o código

Kernel: Do not panic on fstat(fifo)

Instead, let's return an empty buffer with st_mode indicating it's a fifo.
Sergey Bugaev %!s(int64=5) %!d(string=hai) anos
pai
achega
e9dd94063f
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      Kernel/FileSystem/FileDescription.cpp

+ 6 - 1
Kernel/FileSystem/FileDescription.cpp

@@ -48,7 +48,12 @@ FileDescription::~FileDescription()
 
 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)
         return KResult(-EBADF);
     return metadata().stat(buffer);