Преглед на файлове

Kernel: Add file permission checks to link() syscall.

Also use the new name, not the old name, for the new link, duh.
Andreas Kling преди 6 години
родител
ревизия
19acb2baf7
променени са 1 файла, в които са добавени 5 реда и са изтрити 1 реда
  1. 5 1
      Kernel/VirtualFileSystem.cpp

+ 5 - 1
Kernel/VirtualFileSystem.cpp

@@ -350,8 +350,12 @@ bool VFS::link(const String& old_path, const String& new_path, Inode& base, int&
         error = -EROFS;
         return false;
     }
+    if (!parent_inode->metadata().may_write(*current)) {
+        error = -EACCES;
+        return false;
+    }
 
-    if (!parent_inode->add_child(old_inode->identifier(), FileSystemPath(old_path).basename(), 0, error))
+    if (!parent_inode->add_child(old_inode->identifier(), FileSystemPath(new_path).basename(), 0, error))
         return false;
     error = 0;
     return true;