Check null memory info in memcg_write_optimizer_params() to avoid SIGABORT.
This is because memory info structure is directly accessed without checking the validity.
If memory cgroup is null then memcg_write_optimizer_params() returns error to notify that
memory cgroup could not be initalized successfully.
Change-Id: I3e35eacdcf00dc96876cbce7694d35f404df05a6
Signed-off-by: Unsung Lee <unsung.lee@samsung.com>
int memcg_write_optimizer_params(enum cgroup_type cgroup_type)
{
struct memcg_info *mi = get_memcg_info(cgroup_type);
+ if (mi == NULL) {
+ _E("Failed to get memcg info");
+ return RESOURCED_ERROR_FAIL;
+ }
memcg_write_optimizer_info(mi);
return RESOURCED_ERROR_NONE;
swap_conf->swappiness[MEMCG_BACKGROUND_LRU] <= 100) {
memcg_info_set_swappiness(get_memcg_info(MEMCG_BACKGROUND_LRU),
swap_conf->swappiness[MEMCG_BACKGROUND_LRU]);
- memcg_write_optimizer_params(MEMCG_BACKGROUND_LRU);
+ r = memcg_write_optimizer_params(MEMCG_BACKGROUND_LRU);
+ if (r != RESOURCED_ERROR_NONE) {
+ arg_swap_enable = false;
+ goto free_swap_conf;
+ }
+
_I("[SWAP] cgroup (%s) swapiness = %d", MEMCG_BACKGROUND_LRU_NAME,
get_memcg_info(MEMCG_BACKGROUND_LRU)->swappiness);
}