Add step that forces private connections in libsyscommon 16/294516/5
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 16 Jun 2023 08:18:29 +0000 (10:18 +0200)
committerHwanKyu Jhun <h.jhun@samsung.com>
Fri, 23 Jun 2023 02:16:26 +0000 (02:16 +0000)
This is used to ensure that applications launched by launchpad get their
own connection with the appropriate label, rather than using the
connection that was established before the label change.

Change-Id: I1536904207b2b73a5478c6bde973c0e9296a8f87

CMakeLists.txt
packaging/launchpad.spec
src/launchpad-process-pool/CMakeLists.txt
src/lib/launchpad/step_prepare_execution.cc
src/lib/launchpad/step_prepare_execution.hh
tests/launchpad-process-pool-unittest/CMakeLists.txt

index 67bdb598486d73bb9997b95ed2273f63928191fd..a8ba71f18ca64ab6ae47418109ae7b93b626f44e 100644 (file)
@@ -60,7 +60,7 @@ PKG_CHECK_MODULES(DLOG_REDIRECT_STDOUT_DEPS REQUIRED dlog-redirect-stdout)
 PKG_CHECK_MODULES(ECORE_CORE_DEPS REQUIRED ecore-core)
 PKG_CHECK_MODULES(ECORE_DEPS REQUIRED ecore)
 PKG_CHECK_MODULES(ELEMENTARY_DEPS REQUIRED elementary)
-PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0)
+PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0 gio-unix-2.0)
 PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
 PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser)
 PKG_CHECK_MODULES(LIBCAP_DEPS REQUIRED libcap)
@@ -75,6 +75,7 @@ PKG_CHECK_MODULES(TANCHOR_DEPS REQUIRED tanchor)
 PKG_CHECK_MODULES(TIZEN_SHARED_QUEUE_DEPS REQUIRED tizen-shared-queue)
 PKG_CHECK_MODULES(TTRACE_DEPS REQUIRED ttrace)
 PKG_CHECK_MODULES(VCONF_DEPS REQUIRED vconf)
+PKG_CHECK_MODULES(LIBSYSCOMMON_DEPS REQUIRED libsyscommon)
 
 ENABLE_TESTING()
 ADD_TEST(NAME ${TARGET_LAUNCHPAD_PROCESS_POOL_UNITTEST}
index 0d2c5eca9ae8f7a0da8f1c077077caac3d8544af..13ff03622b018a587488760a659dae70c70dee7e 100644 (file)
@@ -23,11 +23,13 @@ BuildRequires:  pkgconfig(dlog-redirect-stdout)
 BuildRequires:  pkgconfig(ecore)
 BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(gio-2.0)
+BuildRequires:  pkgconfig(gio-unix-2.0)
 BuildRequires:  pkgconfig(gmock)
 BuildRequires:  pkgconfig(iniparser)
 BuildRequires:  pkgconfig(libcap)
 BuildRequires:  pkgconfig(libsmack)
 BuildRequires:  pkgconfig(libsystemd)
+BuildRequires:  pkgconfig(libsyscommon)
 BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(libxml-2.0)
 BuildRequires:  pkgconfig(parcel)
index 062173ce292d0c0149b8c22c4d4891604408686b..4832ebbe80742a2aa27aaa8bd11fbea66991f605 100644 (file)
@@ -37,6 +37,7 @@ APPLY_PKG_CONFIG(${TARGET_LAUNCHPAD_PROCESS_POOL} PUBLIC
   LIBCAP_DEPS
   LIBSMACK_DEPS
   LIBSYSTEMD_DEPS
+  LIBSYSCOMMON_DEPS
   LIBTZPLATFORM_CONFIG_DEPS
   SECURITY_MANAGER_DEPS
   TANCHOR_DEPS
index 1c19ce00cc0c80ffcf97f4ceb90b4d1bf21d9ede..951e5e228259e6acb2e18475bd599c8842bbd35c 100644 (file)
@@ -20,6 +20,7 @@
 #include <bundle_cpp.h>
 #include <bundle_internal.h>
 #include <buxton2.h>
+#include <libsyscommon/libgdbus.h>
 #include <security-manager.h>
 #include <sys/prctl.h>
 #include <sys/types.h>
@@ -61,6 +62,8 @@ StepPrepareExecution::StepPrepareExecution() {
         std::placeholders::_1),
     std::bind(&StepPrepareExecution::PrepareIdFile, this,
         std::placeholders::_1),
+    std::bind(&StepPrepareExecution::LibsyscommonSwitchToPrivateConn, this,
+        std::placeholders::_1),
     std::bind(&StepPrepareExecution::SendStartupSignal, this,
         std::placeholders::_1),
   };
@@ -189,6 +192,11 @@ int StepPrepareExecution::PrepareIdFile(AppInfo* app_info) {
   return 0;
 }
 
+int StepPrepareExecution::LibsyscommonSwitchToPrivateConn(AppInfo* app_info) {
+  _I("Switching to private connection.");
+  return gdbus_switch_to_private_connection();
+}
+
 int StepPrepareExecution::SendStartupSignal(AppInfo* app_info) {
   if (Util::SendCmdToAmd(AmdCmd::AppStartupSignal) != 0)
     _W("Failed to send startup signal");
index f95514b86c8f0846f318091b5905d8c00cf5339a..eea1c7ef874001b95123671d774a946b95c41905 100644 (file)
@@ -43,6 +43,7 @@ class StepPrepareExecution {
   int WaitTepMount(AppInfo* app_info);
   int PrepareAppSocket(AppInfo* app_info);
   int PrepareIdFile(AppInfo* app_info);
+  int LibsyscommonSwitchToPrivateConn(AppInfo* app_info);
   int SendStartupSignal(AppInfo* app_info);
 
  private:
index 9dd8db52985fa837ecb0dd9f1e4c3957bbe22c62..5b92bde7bb41afe70b195c8f82d827f47c9a4b33 100644 (file)
@@ -33,6 +33,7 @@ APPLY_PKG_CONFIG(${TARGET_LAUNCHPAD_PROCESS_POOL_UNITTEST} PUBLIC
   INIPARSER_DEPS
   LIBCAP_DEPS
   LIBSMACK_DEPS
+  LIBSYSCOMMON_DEPS
   LIBSYSTEMD_DEPS
   LIBTZPLATFORM_CONFIG_DEPS
   SECURITY_MANAGER_DEPS