From 293a5c2b49595c7a9c7a13afc5d6a1b9b40d8d91 Mon Sep 17 00:00:00 2001 From: r-paiva Date: Thu, 6 May 2021 18:35:34 +0100 Subject: 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. --- Kernel/FileSystem/VirtualFileSystem.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Kernel/FileSystem/VirtualFileSystem.cpp b/Kernel/FileSystem/VirtualFileSystem.cpp index f06203c2a9..646af014fe 100644 --- a/Kernel/FileSystem/VirtualFileSystem.cpp +++ b/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(); } + if (!old_parent_custody || !new_parent_custody) { + return EPERM; + } + auto& old_parent_inode = old_parent_custody->inode(); auto& new_parent_inode = new_parent_custody->inode(); -- cgit v1.2.3