SystemMenu: chdir to home directory before launching apps

This commit is contained in:
Itamar 2020-03-16 22:30:25 +02:00 committed by Andreas Kling
parent a4497ce375
commit e2b7e7c390
Notes: sideshowbarker 2024-07-19 08:15:58 +09:00

View file

@ -28,6 +28,7 @@
#include <AK/QuickSort.h> #include <AK/QuickSort.h>
#include <LibCore/ConfigFile.h> #include <LibCore/ConfigFile.h>
#include <LibCore/DirIterator.h> #include <LibCore/DirIterator.h>
#include <LibCore/UserInfo.h>
#include <LibGUI/Action.h> #include <LibGUI/Action.h>
#include <LibGUI/Application.h> #include <LibGUI/Application.h>
#include <LibGUI/Desktop.h> #include <LibGUI/Desktop.h>
@ -80,6 +81,11 @@ int main(int argc, char** argv)
return 1; return 1;
} }
if (chdir(get_current_user_home_path().characters()) < 0) {
perror("chdir");
return 1;
}
if (unveil("/bin", "x")) { if (unveil("/bin", "x")) {
perror("unveil"); perror("unveil");
return 1; return 1;
@ -150,7 +156,8 @@ NonnullRefPtr<GUI::Menu> build_system_menu()
dbg() << "Activated app with ID " << app_identifier; dbg() << "Activated app with ID " << app_identifier;
if (fork() == 0) { if (fork() == 0) {
const auto& bin = g_apps[app_identifier].executable; 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(); ASSERT_NOT_REACHED();
} }
})); }));