diff options
author | Itamar <itamar8910@gmail.com> | 2020-03-16 22:30:25 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-03-18 08:23:31 +0100 |
commit | e2b7e7c390de61b341897310d6e3e1fdf56b703a (patch) | |
tree | 52f176dece48d067f09d255ea359358b1e4e2afe /Applications | |
parent | a4497ce375fb76fe07c8ceb18741a57039abd2c9 (diff) | |
download | serenity-e2b7e7c390de61b341897310d6e3e1fdf56b703a.zip |
SystemMenu: chdir to home directory before launching apps
Diffstat (limited to 'Applications')
-rw-r--r-- | Applications/SystemMenu/main.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Applications/SystemMenu/main.cpp b/Applications/SystemMenu/main.cpp index a2321427b9..106cae5a5e 100644 --- a/Applications/SystemMenu/main.cpp +++ b/Applications/SystemMenu/main.cpp @@ -28,6 +28,7 @@ #include <AK/QuickSort.h> #include <LibCore/ConfigFile.h> #include <LibCore/DirIterator.h> +#include <LibCore/UserInfo.h> #include <LibGUI/Action.h> #include <LibGUI/Application.h> #include <LibGUI/Desktop.h> @@ -80,6 +81,11 @@ int main(int argc, char** argv) return 1; } + if (chdir(get_current_user_home_path().characters()) < 0) { + perror("chdir"); + return 1; + } + if (unveil("/bin", "x")) { perror("unveil"); return 1; @@ -150,7 +156,8 @@ NonnullRefPtr<GUI::Menu> build_system_menu() dbg() << "Activated app with ID " << app_identifier; if (fork() == 0) { const auto& bin = g_apps[app_identifier].executable; - execl(bin.characters(), bin.characters(), nullptr); + if (execl(bin.characters(), bin.characters(), nullptr) < 0) + perror("execl"); ASSERT_NOT_REACHED(); } })); |