This API call is necessary to cleanup /var/run/user/ app links after app is
terminated. Security-manager detects running apps basing on these links
existence.
Change-Id: If4feb5d158deac30098d05230c9f7fca928eacd2
#include <sm_api.h>
#include <sm_commons.h>
#include <tests_common.h>
#include <sm_api.h>
#include <sm_commons.h>
#include <tests_common.h>
+#include <dpl/test/safe_cleanup.h>
using namespace SecurityManagerTest;
using namespace SecurityManagerTest;
-ScopedAppLauncher::ScopedAppLauncher(const AppInstallHelper& app)
+ScopedAppLauncher::ScopedAppLauncher(const AppInstallHelper& app) :
+ m_uid(app.getUID()),
+ m_appId(app.getAppId())
- SynchronizationPipe syncPipe;
-
m_pid = fork();
RUNNER_ASSERT_ERRNO_MSG(m_pid >= 0, "Fork failed");
if (m_pid != 0) {
m_pid = fork();
RUNNER_ASSERT_ERRNO_MSG(m_pid >= 0, "Fork failed");
if (m_pid != 0) {
ScopedAppLauncher::~ScopedAppLauncher()
{
ScopedAppLauncher::~ScopedAppLauncher()
{
- m_syncPipe.post();
- waitPid(m_pid);
+ SafeCleanup::run([this]{
+ m_syncPipe.post();
+ waitPid(m_pid);
+ Api::cleanupApp(m_appId, m_uid, m_pid);
+ });
private:
SynchronizationPipe m_syncPipe;
pid_t m_pid;
private:
SynchronizationPipe m_syncPipe;
pid_t m_pid;
+ const uid_t m_uid;
+ const std::string m_appId;