diff --git a/Userland/Libraries/LibCore/ConfigFile.cpp b/Userland/Libraries/LibCore/ConfigFile.cpp index 5e494c8213..bab469e747 100644 --- a/Userland/Libraries/LibCore/ConfigFile.cpp +++ b/Userland/Libraries/LibCore/ConfigFile.cpp @@ -6,23 +6,28 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include +#include #include +#include #include +#include namespace Core { ErrorOr> ConfigFile::open_for_lib(String const& lib_name, AllowWriting allow_altering) { - String directory = StandardPaths::config_directory(); - auto path = String::formatted("{}/lib/{}.ini", directory, lib_name); + String directory_name = String::formatted("{}/lib", StandardPaths::config_directory()); + auto directory = TRY(Directory::create(directory_name, Directory::CreateDirectories::Yes)); + auto path = String::formatted("{}/{}.ini", directory, lib_name); return ConfigFile::open(path, allow_altering); } ErrorOr> ConfigFile::open_for_app(String const& app_name, AllowWriting allow_altering) { - String directory = StandardPaths::config_directory(); + auto directory = TRY(Directory::create(StandardPaths::config_directory(), Directory::CreateDirectories::Yes)); auto path = String::formatted("{}/{}.ini", directory, app_name); return ConfigFile::open(path, allow_altering); } diff --git a/Userland/Libraries/LibCore/ConfigFile.h b/Userland/Libraries/LibCore/ConfigFile.h index 8e64d97b39..efb577376e 100644 --- a/Userland/Libraries/LibCore/ConfigFile.h +++ b/Userland/Libraries/LibCore/ConfigFile.h @@ -8,6 +8,7 @@ #pragma once +#include #include #include #include diff --git a/Userland/Services/ConfigServer/main.cpp b/Userland/Services/ConfigServer/main.cpp index da08477e1c..1cb55d4e2b 100644 --- a/Userland/Services/ConfigServer/main.cpp +++ b/Userland/Services/ConfigServer/main.cpp @@ -14,6 +14,7 @@ ErrorOr serenity_main(Main::Arguments) { TRY(Core::System::pledge("stdio accept rpath wpath cpath")); TRY(Core::System::unveil(Core::StandardPaths::config_directory(), "rwc")); + TRY(Core::System::unveil(Core::StandardPaths::home_directory(), "rwc")); TRY(Core::System::unveil(nullptr, nullptr)); Core::EventLoop event_loop; diff --git a/Userland/Services/KeyboardPreferenceLoader/main.cpp b/Userland/Services/KeyboardPreferenceLoader/main.cpp index 247421e782..7cc995c950 100644 --- a/Userland/Services/KeyboardPreferenceLoader/main.cpp +++ b/Userland/Services/KeyboardPreferenceLoader/main.cpp @@ -16,7 +16,7 @@ ErrorOr serenity_main(Main::Arguments) { - TRY(Core::System::pledge("stdio proc exec rpath")); + TRY(Core::System::pledge("stdio proc exec rpath cpath")); auto keyboard_settings_config = TRY(Core::ConfigFile::open_for_app("KeyboardSettings")); TRY(Core::System::unveil("/bin/keymap", "x"));