Add missing exception handling 44/290644/1
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 30 Mar 2023 05:53:27 +0000 (05:53 +0000)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 30 Mar 2023 05:57:07 +0000 (05:57 +0000)
If the launchpad-process-pool does not have the capability that is
cap_dac_override, the launchpad-process-pool cannot create a new directory.
The launchpad-process-pool cannot create a new directory in the '/opt/usr' path.

Change-Id: I45b86c9a549b78ce483dcbe4b7ae0fd418cfcecb
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/launchpad-process-pool/launchpad.cc

index 1a44270..336cfe2 100644 (file)
@@ -261,7 +261,7 @@ class SigchldHandler : public launchpad::SignalManager::IEvent {
   void OnSigchldReceived(pid_t pid) override { HandleSigchld(pid); }
 };
 
-class AppDefinedLoaderInfoEvent
+class AppDefinedLoaderInfoEventHandler
     : public launchpad::AppDefinedLoaderInfoManager::IEvent {
  public:
   void OnLoaderInfoAdded(const std::string_view name) override {
@@ -277,7 +277,7 @@ class AppDefinedLoaderInfoEvent
 };
 
 std::unique_ptr<launchpad::LoaderInfoManager> loader_info_manager;
-AppDefinedLoaderInfoEvent app_defined_loader_info_event;
+AppDefinedLoaderInfoEventHandler app_defined_loader_info_event_handler;
 std::unique_ptr<launchpad::AppDefinedLoaderInfoManager>
     app_defined_loader_info_manager;
 int user_slot_offset;
@@ -2972,10 +2972,14 @@ static int __before_loop(int argc, char** argv) {
 
   launchpad::Debug::GetInst().Init();
 
-  app_defined_loader_info_manager.reset(
-      new launchpad::AppDefinedLoaderInfoManager());
-  app_defined_loader_info_manager->SetEventListener(
-      &app_defined_loader_info_event);
+  try {
+    app_defined_loader_info_manager.reset(
+        new launchpad::AppDefinedLoaderInfoManager());
+    app_defined_loader_info_manager->SetEventListener(
+        &app_defined_loader_info_event_handler);
+  } catch (const launchpad::Exception& e) {
+    _E("Exception occurs. error: %s", e.what());
+  }
 
       ret = _send_cmd_to_amd(LAUNCHPAD_LAUNCH_SIGNAL);
   if (ret < 0)