Remove memory leakage to avoid dangling 55/258655/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Fri, 21 May 2021 11:11:31 +0000 (20:11 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Fri, 21 May 2021 11:11:31 +0000 (20:11 +0900)
Change-Id: I3ed4e6772cb6042076b0b78addcd384051d9232c
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
engine-parser/src/vc-engine-parser.c

index 8af3cd45e1f1d45e1309a2edf15f73eb7ef6965f..16aabc1dbeb2024b6a1c5bacd575459c64bfd078 100644 (file)
@@ -549,6 +549,10 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList *
                        if (NULL != home_dir) {
                                LOGD("[DEBUG] uid(%d), gid(%d), user_type(%s), home_dir(%s)", uid, gid, user_type, home_dir);
 
+                               FREE(g_dir_config_base)
+                               FREE(g_dir_home)
+                               FREE(g_dir_engine_base)
+                               FREE(g_dir_engine_info)
                                g_dir_config_base = (char*)calloc(strlen(home_dir) + 14, sizeof(char));
                                g_dir_home = (char*)calloc(strlen(home_dir) + 17, sizeof(char));
                                g_dir_engine_base = (char*)calloc(strlen(home_dir) + 21, sizeof(char));
@@ -578,11 +582,6 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList *
                                        LOGE("[ERROR] Fail to make engine info file");
                                }
 
-                               FREE(g_dir_config_base)
-                               FREE(g_dir_home)
-                               FREE(g_dir_engine_base)
-                               FREE(g_dir_engine_info)
-
                                G_FREE(home_dir)
                        }
 
@@ -790,6 +789,7 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList
                        }
 
                        if (NULL != home_dir) {
+                               G_FREE(g_dir_engine_info)
                                g_dir_engine_info = (char*)calloc(strlen(home_dir) + 33, sizeof(char));
                                if (NULL == g_dir_engine_info) {
                                        gum_user_service_list_free(users);
@@ -814,7 +814,6 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList
                                }
 
                                G_FREE(home_dir)
-                               G_FREE(g_dir_engine_info)
                        }
                        G_FREE(user_type)