Browse Source

Kernel-VFS: Fixed kernel crash if parent custody is null

In VFS::rename, if new_path is equal to '/', then, parent custody is
set to null.
VFS::rename would then use parent custody without checking it first.

Fixed VFS::rename to check both old and new path parent custody
before actually using them.
r-paiva 4 years ago
parent
commit
293a5c2b49
1 changed files with 4 additions and 0 deletions
  1. 4 0
      Kernel/FileSystem/VirtualFileSystem.cpp

+ 4 - 0
Kernel/FileSystem/VirtualFileSystem.cpp

@@ -498,6 +498,10 @@ KResult VFS::rename(StringView old_path, StringView new_path, Custody& base)
             return new_custody_or_error.error();
             return new_custody_or_error.error();
     }
     }
 
 
+    if (!old_parent_custody || !new_parent_custody) {
+        return EPERM;
+    }
+
     auto& old_parent_inode = old_parent_custody->inode();
     auto& old_parent_inode = old_parent_custody->inode();
     auto& new_parent_inode = new_parent_custody->inode();
     auto& new_parent_inode = new_parent_custody->inode();