From 24f91c608ab74d74dc52940e732626f692aa5890 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Fri, 13 Nov 2026 10:29:07 +0800 Subject: [PATCH] [fix] reject empty and relative XDG storage paths --- apps/desktop/src/platform/linux/path_backend.cpp | 3 ++- apps/desktop/src/platform/macos/path_backend.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/platform/linux/path_backend.cpp b/apps/desktop/src/platform/linux/path_backend.cpp index 899bbab7..01a8c162 100644 --- a/apps/desktop/src/platform/linux/path_backend.cpp +++ b/apps/desktop/src/platform/linux/path_backend.cpp @@ -17,7 +17,8 @@ std::filesystem::path Home() { std::filesystem::path EnvOrDefault(const char* name, const std::filesystem::path& fallback) { const char* value = std::getenv(name); - return value ? std::filesystem::path(value) : fallback; + const std::filesystem::path path = value ? value : ""; + return path.is_absolute() ? path : fallback; } } // namespace diff --git a/apps/desktop/src/platform/macos/path_backend.cpp b/apps/desktop/src/platform/macos/path_backend.cpp index 73817540..bf6e1cec 100644 --- a/apps/desktop/src/platform/macos/path_backend.cpp +++ b/apps/desktop/src/platform/macos/path_backend.cpp @@ -16,7 +16,8 @@ std::filesystem::path Home() { std::filesystem::path EnvOrDefault(const char* name, const std::filesystem::path& fallback) { const char* value = std::getenv(name); - return value ? std::filesystem::path(value) : fallback; + const std::filesystem::path path = value ? value : ""; + return path.is_absolute() ? path : fallback; } } // namespace