Check memory allocation failure 34/106034/2
authorKichan Kwon <k_c.kwon@samsung.com>
Tue, 20 Dec 2016 06:35:17 +0000 (15:35 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Tue, 20 Dec 2016 09:36:42 +0000 (18:36 +0900)
- In addition, repeated error code is removed

Change-Id: I34a21445a5cffe07c1a44c83b457c47b614f9de0
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
include/resourced.h
src/common/userinfo-list.c
src/heart/heart-cpu.c
src/heart/logging.c
src/memory/vmpressure-lowmem-handler.c
src/proc-stat/proc-main.c
src/swap/swap.c

index 4377a91..ecf8e0e 100644 (file)
@@ -45,7 +45,6 @@ extern "C" {
  * @brief return code of the rsml's function
  */
 typedef enum {
-       RESOURCED_ERROR_OOM = -10,              /**< Out of memory error, allocation failed */
        RESOURCED_ERROR_NONMONITOR = -9,                /** < Process don't show watchdog popup */
        RESOURCED_ERROR_NONFREEZABLE = -8,              /** < Process is nonfrizable */
        RESOURCED_ERROR_NOTIMPL = -7,            /**< Not implemented yet error */
@@ -53,7 +52,7 @@ typedef enum {
                                           mounted or daemon not started */
        RESOURCED_ERROR_NO_DATA = -5,            /**< Success, but no data */
        RESOURCED_ERROR_INVALID_PARAMETER = -4,/**< Invalid parameter */
-       RESOURCED_ERROR_OUT_OF_MEMORY = -3,      /**< DEPRECATED: Out of memory */
+       RESOURCED_ERROR_OUT_OF_MEMORY = -3,      /**< Out of memory error, allocation failed */
        RESOURCED_ERROR_DB_FAILED = -2,  /**< Database error */
        RESOURCED_ERROR_FAIL = -1,               /**< General error */
        RESOURCED_ERROR_NONE = 0                 /**< General success */
index 125fe97..129854d 100644 (file)
@@ -63,8 +63,10 @@ static resourced_ret_c userinfo_update_list(void)
 
        /* Get user data by using libgum */
        gus = gum_user_service_create_sync(TRUE);
-       if (!gus)
+       if (!gus) {
+               _E("Failed to create gum user service");
                return RESOURCED_ERROR_FAIL;
+       }
 
        query = g_strsplit("admin,normal", ",", -1);
 
@@ -72,6 +74,7 @@ static resourced_ret_c userinfo_update_list(void)
        g_strfreev(query);
 
        if (!users) {
+               _E("Failed to get gum user list");
                g_object_unref(gus);
                return RESOURCED_ERROR_FAIL;
        }
@@ -81,8 +84,7 @@ static resourced_ret_c userinfo_update_list(void)
 
        /* Make new user list */
        user_list = g_array_new(FALSE, FALSE, sizeof(struct user_info*));
-       if (!user_list)
-               return RESOURCED_ERROR_OUT_OF_MEMORY;
+       assert(user_list);
 
        iter = users;
        for (; iter != NULL; iter = g_list_next(iter)) {
@@ -91,6 +93,8 @@ static resourced_ret_c userinfo_update_list(void)
                g_object_get(G_OBJECT(user), "homedir", &home_dir, NULL);
 
                elem = malloc(sizeof(struct user_info));
+               assert(elem);
+
                elem->uid = uid;
                snprintf(elem->home_dir, PATH_MAX, "%s", home_dir);
 
index 10a68a9..f17dea2 100644 (file)
@@ -1494,6 +1494,8 @@ static int heart_cpu_init(void *data)
                        cache->last_file_commit_time = logging_get_time(CLOCK_BOOTTIME);
 
                        uid = malloc(sizeof(uid_t));
+                       assert(uid);
+
                        *uid = elem->uid;
                        g_hash_table_insert(heart_cpu_app_list, (gpointer)uid, (gpointer)cache);
                }
index 6a5a402..2652038 100644 (file)
@@ -313,9 +313,16 @@ static int logging_update_user_db_list(char *name, enum logging_db_type type, GH
                }
 
                uid = malloc(sizeof(uid_t));
+               assert(uid);
+
                *uid = elem->uid;
+
                db_elem = (struct logging_db*)malloc(sizeof(struct logging_db));
+               assert(db_elem);
+
                db_elem->path = strndup(path, strlen(path));
+               assert(db_elem->path);
+
                db_elem->file = file;
                db_elem->insert_stmt = NULL;
                db_elem->delete_stmt = NULL;
@@ -341,10 +348,8 @@ int logging_module_init(char *name, enum logging_period max_period,
 
        if (!logging_instance) {
                logging_instance = (struct logging_object *)malloc(sizeof(struct logging_object));
-               if (!logging_instance) {
-                       _E("Failed to malloc logging_instance");
-                       return RESOURCED_ERROR_OUT_OF_MEMORY;
-               }
+               assert(logging_instance);
+
                logging_instance->ref = 0;
                logging_init(NULL);
        }
@@ -357,11 +362,7 @@ int logging_module_init(char *name, enum logging_period max_period,
        }
 
        module = calloc(1, sizeof(struct logging_module));
-
-       if (!module) {
-               _E("malloc failed");
-               return RESOURCED_ERROR_OUT_OF_MEMORY;
-       }
+       assert(module);
 
        /* DB create */
        switch (db_type) {
@@ -1599,7 +1600,17 @@ int logging_init(void *data)
                return RESOURCED_ERROR_DB_FAILED;
        }
        db_elem = (struct logging_db*)malloc(sizeof(struct logging_db));
+       if (!db_elem) {
+               _E("Out of memory!");
+               return RESOURCED_ERROR_OUT_OF_MEMORY;
+       }
+
        db_elem->path = strndup(SYSTEM_DEFAULT_DB_NAME, sizeof(SYSTEM_DEFAULT_DB_NAME));
+       if (!(db_elem->path)) {
+               _E("Out of memory!");
+               return RESOURCED_ERROR_OUT_OF_MEMORY;
+       }
+
        db_elem->file = db_file;
        db_elem->insert_stmt = NULL;
        db_elem->delete_stmt = NULL;
index 040d1ca..8e05379 100644 (file)
@@ -1475,25 +1475,19 @@ static void setup_memcg_params(void)
                dynamic_threshold_min);
 }
 
-static int init_memcg_params(void)
+static void init_memcg_params(void)
 {
        int idx = 0;
        char buf[MAX_PATH_LENGTH];
        memcg_tree = (struct memcg **)malloc(sizeof(struct memcg *) *
                MEMCG_MAX);
-       if (!memcg_tree)
-               return RESOURCED_ERROR_FAIL;
+       assert(memcg_tree);
 
        for (idx = 0; idx < MEMCG_MAX; idx++) {
                struct memcg_info *mi = NULL;
                memcg_tree[idx] = (struct memcg *)malloc(sizeof(struct memcg));
-               if (!memcg_tree[idx]) {
-                       int i;
-                       for (i = 0; i < idx - 1; i++)
-                               free(memcg_tree[i]);
-                       free(memcg_tree);
-                       return RESOURCED_ERROR_FAIL;
-               }
+               assert(memcg_tree[idx]);
+
                memcg_init(memcg_tree[idx]);
                if (memcg_name[idx])
                        snprintf(buf, MAX_PATH_LENGTH, "%s/%s", LOWMEM_DEFAULT_CGROUP,
@@ -1501,20 +1495,14 @@ static int init_memcg_params(void)
                else
                        snprintf(buf, MAX_PATH_LENGTH, "%s", LOWMEM_DEFAULT_CGROUP);
                mi = (struct memcg_info *)malloc(sizeof(struct memcg_info));
-               if (!mi) {
-                       int i;
-                       for (i = 0; i < idx; i++)
-                               free(memcg_tree[i]);
-                       free(memcg_tree);
-                       return RESOURCED_ERROR_FAIL;
-               }
+               assert(mi);
+
                memcg_info_init(mi, buf);
                memcg_tree[idx]->info = mi;
                _I("init memory cgroup for %s", buf);
                if (idx == MEMCG_MEMORY)
                        memcg_root = memcg_tree[idx]->info;
        }
-       return RESOURCED_ERROR_NONE;
 }
 
 static int write_params_memcg_info(struct memcg_info *mi,
index 8158ddd..7bce57f 100644 (file)
@@ -297,7 +297,7 @@ static int proc_runtime_app_info_read_procs(const char *path, pid_list *child_li
 
        buf = calloc(1, PATH_MAX);
        if (!buf)
-               return RESOURCED_ERROR_OOM;
+               return RESOURCED_ERROR_OUT_OF_MEMORY;
 
        ret = fread_str(app_info_node, &buf);
        if (ret < 0)
index e1bd210..9bb1f7d 100644 (file)
@@ -571,7 +571,7 @@ static int swap_zram_activate(void)
        if (swap_size_bytes < swap_control.swap_size_bytes) {
                _E("swap size (%d) less than expected swap size (%d)",
                                swap_size_bytes, swap_control.swap_size_bytes);
-               return RESOURCED_ERROR_OOM;
+               return RESOURCED_ERROR_OUT_OF_MEMORY;
        }
 
        ret = swap_mkswap();