Prechádzať zdrojové kódy

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.
Martin Bříza 3 rokov pred
rodič
commit
f75bab2a25

+ 0 - 1
Kernel/FileSystem/VirtualFileSystem.cpp

@@ -24,7 +24,6 @@
 namespace Kernel {
 
 static Singleton<VirtualFileSystem> 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()

+ 4 - 0
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();