소스 검색

LibFileSystem: Replace PATH_MAX usage with heap allocation

Sergey Bugaev 1 년 전
부모
커밋
ae10d085ba
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      Userland/Libraries/LibFileSystem/FileSystem.cpp

+ 3 - 2
Userland/Libraries/LibFileSystem/FileSystem.cpp

@@ -6,6 +6,7 @@
  */
 
 #include <AK/LexicalPath.h>
+#include <AK/ScopeGuard.h>
 #include <LibCore/DirIterator.h>
 #include <LibCore/System.h>
 #include <LibFileSystem/FileSystem.h>
@@ -47,9 +48,9 @@ ErrorOr<String> real_path(StringView path)
     if (path.is_null())
         return Error::from_errno(ENOENT);
 
-    char buffer[PATH_MAX];
     DeprecatedString dep_path = path;
-    auto* real_path = realpath(dep_path.characters(), buffer);
+    char* real_path = realpath(dep_path.characters(), nullptr);
+    ScopeGuard free_path = [real_path]() { free(real_path); };
 
     if (!real_path)
         return Error::from_syscall("realpath"sv, -errno);