commons: remove fork() from AppInstallHelper 56/324156/1
authorZofia Abramowska <z.abramowska@samsung.com>
Tue, 13 May 2025 08:59:04 +0000 (10:59 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Tue, 13 May 2025 10:48:53 +0000 (12:48 +0200)
Change-Id: If175cee6a77cc2ad9ecd9a5aa41ffe099e36ac1a

src/common/app_install_helper.cpp

index 523848b496ead9da51719a3a976dc5042c4858ab..948c682c3334fc8cb1adb42458c7f17b8eda0cf5 100644 (file)
@@ -345,9 +345,7 @@ void AppInstallHelper::getPUIDAndAGID() const {
     void* ptr = mmap(nullptr, MMAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
     RUNNER_ASSERT_ERRNO_MSG(ptr != MAP_FAILED, "mmap() failed");
     auto shmem = std::unique_ptr<void, decltype(deleter)>{ptr, std::move(deleter)};
-    pid_t pid = fork();
-    RUNNER_ASSERT_MSG(pid >= 0, "Fork failed");
-    if (pid == 0) {
+    runInChildParentWait([&] {
         SecurityManagerTest::Api::setAppProcessIdentity(m_appName);
         id.uid = getuid();
 
@@ -367,9 +365,8 @@ void AppInstallHelper::getPUIDAndAGID() const {
         }
 
         std::memcpy(shmem.get(), &id, sizeof(id));
-        _exit(0);
-    }
-    waitPid(pid);
+    });
+
     std::memcpy(&id, shmem.get(), sizeof(id));
     m_puid = id.uid;
     if (id.gid != 0)