summaryrefslogtreecommitdiff
path: root/Applications
diff options
context:
space:
mode:
authorItamar <itamar8910@gmail.com>2020-03-16 22:30:25 +0200
committerAndreas Kling <kling@serenityos.org>2020-03-18 08:23:31 +0100
commite2b7e7c390de61b341897310d6e3e1fdf56b703a (patch)
tree52f176dece48d067f09d255ea359358b1e4e2afe /Applications
parenta4497ce375fb76fe07c8ceb18741a57039abd2c9 (diff)
downloadserenity-e2b7e7c390de61b341897310d6e3e1fdf56b703a.zip
SystemMenu: chdir to home directory before launching apps
Diffstat (limited to 'Applications')
-rw-r--r--Applications/SystemMenu/main.cpp9
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();
}
}));