Browse Source

SystemMenu: chdir to home directory before launching apps

Itamar 5 năm trước cách đây
mục cha
commit
e2b7e7c390
1 tập tin đã thay đổi với 8 bổ sung1 xóa
  1. 8 1
      Applications/SystemMenu/main.cpp

+ 8 - 1
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();
             }
         }));