From f75bab2a25a1e8e1b9ea788924601a3b0ecbbc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20B=C5=99=C3=ADza?= Date: Tue, 21 Dec 2021 16:11:19 +0100 Subject: [PATCH] Kernel: Move symlink recursion limit to .h, increase it to 8 As pointed out by BertalanD on Discord, POSIX specifies that _SC_SYMLOOP_MAX (implemented in the following commit) always needs to be equal or more than _POSIX_SYMLOOP_MAX (8, defined in LibC/bits/posix1_lim.h), hence I've increased it to that value to comply with the standard. The move to header is required for the following commit - to make this constant accessible outside of the VFS class, namely in sysconf. --- Kernel/FileSystem/VirtualFileSystem.cpp | 1 - Kernel/FileSystem/VirtualFileSystem.h | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Kernel/FileSystem/VirtualFileSystem.cpp b/Kernel/FileSystem/VirtualFileSystem.cpp index c8c6f19367..ebc94a3ac5 100644 --- a/Kernel/FileSystem/VirtualFileSystem.cpp +++ b/Kernel/FileSystem/VirtualFileSystem.cpp @@ -24,7 +24,6 @@ namespace Kernel { static Singleton s_the; -static constexpr int symlink_recursion_limit { 5 }; // FIXME: increase? static constexpr int root_mount_flags = MS_NODEV | MS_NOSUID | MS_RDONLY; UNMAP_AFTER_INIT void VirtualFileSystem::initialize() diff --git a/Kernel/FileSystem/VirtualFileSystem.h b/Kernel/FileSystem/VirtualFileSystem.h index 54af26bdce..edecba50e8 100644 --- a/Kernel/FileSystem/VirtualFileSystem.h +++ b/Kernel/FileSystem/VirtualFileSystem.h @@ -35,6 +35,10 @@ struct UidAndGid { class VirtualFileSystem { AK_MAKE_ETERNAL public: + // Required to be at least 8 by POSIX + // https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html + static constexpr int symlink_recursion_limit = 8; + static void initialize(); static VirtualFileSystem& the();