From f0c9c5e076711bcec8db6f091f577d6fac7bede3 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 3 Apr 2023 15:54:14 +0200 Subject: [PATCH] Kernel: Make custody_for_dirfd() fail on files other than directories --- Kernel/Process.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index aca0928f09..bd1328ac04 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -1084,11 +1084,12 @@ ErrorOr> Process::custody_for_dirfd(int dirfd) { if (dirfd == AT_FDCWD) return current_directory(); - - auto base_description = TRY(open_file_description(dirfd)); - if (!base_description->custody()) + auto description = TRY(open_file_description(dirfd)); + if (!description->custody()) return EINVAL; - return *base_description->custody(); + if (!description->is_directory()) + return ENOTDIR; + return *description->custody(); } SpinlockProtected, LockRank::None> const& Process::name() const