lowmem: Replace syscommon_proc_is_app() with security-manager API 41/318441/1 accepted/tizen/unified/20250122.093025 accepted/tizen/unified/x/20250122.173327
authorYoungjae Cho <y0.cho@samsung.com>
Thu, 16 Jan 2025 08:51:34 +0000 (17:51 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Fri, 17 Jan 2025 02:25:16 +0000 (11:25 +0900)
Instead of syscommon_proc_is_app() which had been accessing smack node
'/proc/<pid>/attr/current' directly, use security-manager API instead.
It is especially important where smack is not support. The
security-manager API can handle such case in contrast to accessing
the smack node directly.

Change-Id: I6c57438de72dab19b6f20ab954109b9f8c301274
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
packaging/resourced.spec
src/CMakeLists.txt
src/resource-limiter/memory/lowmem.c

index 63e1e7c5bd32968691b2566fd7a27e962d4d5c70..00cc2e066cf159c7f05a167d4a6b3b6da26ebcd5 100644 (file)
@@ -47,6 +47,7 @@ BuildRequires:  pkgconfig(aul)
 BuildRequires:  pkgconfig(gio-2.0)
 BuildRequires: gperf
 BuildRequires:  pkgconfig(cynara-creds-pid)
+BuildRequires:  pkgconfig(security-manager)
 
 # for swap plugin
 Requires:      %{_sbindir}/mkswap
index c31afe9ce3dfa32256ebdff58e8af7bca56bcd20..8b9f29e827839d63f94edf6012ea3f30b12853fa 100644 (file)
@@ -114,6 +114,7 @@ SET(REQUIRES_LIST ${REQUIRES_LIST}
        libsyscommon-plugin-api-resourced
        aul
        cynara-creds-pid
+       security-manager
   )
 
 INCLUDE(FindPkgConfig)
index 2444d0e5640dc930a0c189f89dcbd3a152f8f46a..16da153cb7a730cc9486b170d0811620c12f6032 100644 (file)
@@ -44,6 +44,7 @@
 #include <malloc.h>
 
 #include <system/syscommon-plugin-resourced-memory-lmk.h>
+#include <security-manager/app-runtime.h>
 #include <libsyscommon/proc.h>
 
 #include "trace.h"
@@ -386,6 +387,18 @@ static inline void get_total_memory(void)
        }
 }
 
+static int lowmem_is_app(pid_t pid)
+{
+       bool is_app = false;
+       int ret;
+
+       ret = security_manager_is_app_from_pid(pid, &is_app);
+       if (ret != SECURITY_MANAGER_SUCCESS)
+               return -1;
+
+       return is_app;
+}
+
 unsigned int lowmem_get_task_mem_usage_rss(const struct task_info *tsk)
 {
        unsigned int size_kb = 0, total_size_kb = 0;
@@ -672,7 +685,7 @@ static GArray *lowmem_get_task_info_proc()
                if (pgid < 1)
                        continue;
 
-               if(syscommon_proc_is_app(pid) != 1)
+               if(lowmem_is_app(pid) != 1)
                        continue;
 
                if (proc_get_oom_score_adj(pid, &oom_score_adj) < 0) {